<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>AzureAD Archives - Erjen Rijnders</title>
	<atom:link href="https://erjenrijnders.nl/tag/azuread/feed/" rel="self" type="application/rss+xml" />
	<link>https://erjenrijnders.nl/tag/azuread/</link>
	<description>Microsoft Azure/EMS blog</description>
	<lastBuildDate>Tue, 10 Sep 2019 14:31:50 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.6.2</generator>
	<item>
		<title>Azure AD login without credentials (unattended)</title>
		<link>https://erjenrijnders.nl/2018/08/30/azuread-login-without-credentials-unattended/</link>
					<comments>https://erjenrijnders.nl/2018/08/30/azuread-login-without-credentials-unattended/#comments</comments>
		
		<dc:creator><![CDATA[Erjen]]></dc:creator>
		<pubDate>Thu, 30 Aug 2018 10:53:06 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[azure]]></category>
		<category><![CDATA[AzureAD]]></category>
		<category><![CDATA[Azure AD]]></category>
		<guid isPermaLink="false">http://erjenrijnders.nl/?p=75660</guid>

					<description><![CDATA[<p>Unattended login to Azure isn&#8217;t that easy, especially if you want to add a PowerShell script to the task scheduler. [&#8230;]</p>
<p>The post <a href="https://erjenrijnders.nl/2018/08/30/azuread-login-without-credentials-unattended/">Azure AD login without credentials (unattended)</a> appeared first on <a href="https://erjenrijnders.nl">Erjen Rijnders</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Unattended login to Azure isn&#8217;t that easy, especially if you want to add a PowerShell script to the task scheduler. You will see that Plain Text password do not work, and it doesn’t work with the “CredentialManager” module either. You will get an error message like:</p>
<p>&nbsp;</p>
<div class="codecolorer-container powershell twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;"><div>1<br /></div></td><td><div class="powershell codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">Connect<span style="color: pink;">-</span>AzureAD : One or more errors occurred.: Showing a modal dialog box or form when the application is not running <span style="color: #0000FF;">in</span> UserInteractive mode is not a valid operation. Specify the ServiceNotification or DefaultDesktopOnly style to display a notification from a service application.</div></td></tr></tbody></table></div>
<p>&nbsp;</p>
<p>The solution is to add a registered app in Azure AD and connect to that app. Here is the PowerShell I used.</p>
<blockquote><p>Note that running commands below on Server 2012 R2 or before will fail, it doesn’t support options that comes with Windows Server 2016. Stripping those options will fail the Azure AD login. Execute these commands on a Windows 10 or Server 2016 machine and copy the exported certificate to a Windows Server 2012 R2 machine. Also import the certificate in the Personal store of the “CurrentUser” on that specific machine.</p></blockquote>
<p>First, login with administrator credentials:</p>
<div class="codecolorer-container powershell twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;"><div>1<br /></div></td><td><div class="powershell codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">Connect<span style="color: pink;">-</span>AzureAD</div></td></tr></tbody></table></div>
<p>Now Execute this PowerShell:</p>
<div class="codecolorer-container powershell twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br /></div></td><td><div class="powershell codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"><span style="color: #800080;">$pwd</span> <span style="color: pink;">=</span> <span style="color: #800000;">&quot;yourpass&quot;</span><br />
<span style="color: #800080;">$thumb</span> <span style="color: pink;">=</span> <span style="color: #000000;">&#40;</span>New<span style="color: pink;">-</span>SelfSignedCertificate <span style="color: pink;">-</span>CertStoreLocation Cert:\CurrentUser\My <span style="color: pink;">-</span>subject <span style="color: #800000;">&quot;unattendedlogin-azuread&quot;</span> <span style="color: pink;">-</span>KeyExportPolicy Exportable <span style="color: pink;">-</span>NotAfter <span style="color: #000000;">&#40;</span><span style="color: #008080; font-weight: bold;">Get-Date</span><span style="color: #000000;">&#41;</span>.AddYears<span style="color: #000000;">&#40;</span><span style="color: #804000;">10</span><span style="color: #000000;">&#41;</span> <span style="color: pink;">-</span><span style="color: #008080; font-weight: bold;">Type</span> CodeSigningCert <span style="color: pink;">-</span>KeySpec Signature<span style="color: #000000;">&#41;</span>.Thumbprint<br />
<span style="color: #800080;">$pwd</span> <span style="color: pink;">=</span> <span style="color: #008080; font-weight: bold;">ConvertTo-SecureString</span> <span style="color: #008080; font-style: italic;">-String</span> <span style="color: #800080;">$pwd</span> <span style="color: #008080; font-style: italic;">-Force</span> <span style="color: #008080; font-style: italic;">-AsPlainText</span><br />
<span style="color: #800080;">$tmppath</span> <span style="color: pink;">=</span> <span style="color: #008080; font-weight: bold;">Test-Path</span> C:\tmp<br />
<span style="color: #0000FF;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$tmppath</span> <span style="color: #FF0000;">-eq</span> <span style="color: #800080;">$false</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>mkdir C:\tmp<span style="color: #000000;">&#125;</span><br />
Export<span style="color: pink;">-</span>PfxCertificate <span style="color: pink;">-</span>cert <span style="color: #800000;">&quot;cert:\CurrentUser\my\$thumb&quot;</span> <span style="color: #008080; font-style: italic;">-FilePath</span> C:\tmp\unattendedlogin<span style="color: pink;">-</span>azuread.pfx <span style="color: pink;">-</span>Password <span style="color: #800080;">$pwd</span><br />
<span style="color: #800080;">$cert</span> <span style="color: pink;">=</span> <span style="color: #008080; font-weight: bold;">New-Object</span> System.Security.Cryptography.X509Certificates.X509Certificate<span style="color: #000000;">&#40;</span><span style="color: #800000;">&quot;C:\tmp\unattendedlogin-azuread.pfx&quot;</span><span style="color: pink;">,</span> <span style="color: #800080;">$pwd</span><span style="color: #000000;">&#41;</span><br />
<span style="color: #800080;">$keyValue</span> <span style="color: pink;">=</span> <span style="color: #000000;">&#91;</span>System.Convert<span style="color: #000000;">&#93;</span>::ToBase64String<span style="color: #000000;">&#40;</span><span style="color: #800080;">$cert</span>.GetRawCertData<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><br />
<span style="color: #800080;">$application</span> <span style="color: pink;">=</span> New<span style="color: pink;">-</span>AzureADApplication <span style="color: #008080; font-style: italic;">-DisplayName</span> <span style="color: #800000;">&quot;unattendedlogin-azuread&quot;</span> <span style="color: pink;">-</span>IdentifierUris <span style="color: #800000;">&quot;https://unattendedlogin&quot;</span><br />
New<span style="color: pink;">-</span>AzureADApplicationKeyCredential <span style="color: pink;">-</span>ObjectId <span style="color: #800080;">$application</span>.ObjectId <span style="color: pink;">-</span>CustomKeyIdentifier <span style="color: #800000;">&quot;unattendedlogin&quot;</span> <span style="color: pink;">-</span><span style="color: #008080; font-weight: bold;">Type</span> AsymmetricX509Cert <span style="color: pink;">-</span>Usage Verify <span style="color: #008080; font-style: italic;">-Value</span> <span style="color: #800080;">$keyValue</span><br />
<span style="color: #800080;">$sp</span><span style="color: pink;">=</span>New<span style="color: pink;">-</span>AzureADServicePrincipal <span style="color: pink;">-</span>AppId <span style="color: #800080;">$application</span>.AppId<br />
Add<span style="color: pink;">-</span>AzureADDirectoryRoleMember <span style="color: pink;">-</span>ObjectId <span style="color: #000000;">&#40;</span>Get<span style="color: pink;">-</span>AzureADDirectoryRole <span style="color: pink;">|</span> <span style="color: #008080; font-weight: bold;">where-object</span> <span style="color: #000000;">&#123;</span><a href="about:blank"><span style="color: #000080;">$_</span></a>.DisplayName <span style="color: #FF0000;">-eq</span> <span style="color: #800000;">&quot;Directory Readers&quot;</span><span style="color: #000000;">&#125;</span><span style="color: #000000;">&#41;</span>.Objectid <span style="color: pink;">-</span>RefObjectId <span style="color: #800080;">$sp</span>.ObjectId</div></td></tr></tbody></table></div>
<p>Now save the thumbprint, tenantID and appID.</p>
<div class="codecolorer-container powershell twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;"><div>1<br />2<br />3<br /></div></td><td><div class="powershell codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"><span style="color: #800080;">$thumb</span> <span style="color: pink;">=</span> <span style="color: #800000;">&quot;thumbprint&quot;</span><br />
<span style="color: #800080;">$tenantid</span> <span style="color: pink;">=</span> <span style="color: #800000;">&quot;tenantid&quot;</span><br />
<span style="color: #800080;">$appid</span> <span style="color: pink;">=</span> <span style="color: #800000;">&quot;appid&quot;</span></div></td></tr></tbody></table></div>
<p>You can get these values like this (use the same PowerShell session), executing these commands:</p>
<div class="codecolorer-container powershell twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="powershell codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"><span style="color: #800080;">$thumb</span><br />
<span style="color: #800080;">$appid</span> <span style="color: pink;">=</span> get<span style="color: pink;">-</span>azureadapplication <span style="color: pink;">|</span> <span style="color: #0000FF;">where</span> DisplayName <span style="color: #FF0000;">-match</span> <span style="color: #800000;">&quot;unattendedlogin&quot;</span><br />
<span style="color: #800080;">$appid</span>.AppId<br />
<span style="color: #800080;">$tenantid</span> <span style="color: pink;">=</span> Get<span style="color: pink;">-</span>AzureADTenantDetail<br />
<span style="color: #800080;">$tenantid</span>.ObjectId</div></td></tr></tbody></table></div>
<p>Next time login like this:</p>
<div class="codecolorer-container powershell twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;"><div>1<br /></div></td><td><div class="powershell codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">Connect<span style="color: pink;">-</span>AzureAD <span style="color: pink;">-</span>TenantId <span style="color: #800080;">$tenantid</span> <span style="color: pink;">-</span>ApplicationId <span style="color: #800080;">$appid</span> <span style="color: pink;">-</span>CertificateThumbprint $thumb</div></td></tr></tbody></table></div>
<p>&nbsp;</p>
<p>The post <a href="https://erjenrijnders.nl/2018/08/30/azuread-login-without-credentials-unattended/">Azure AD login without credentials (unattended)</a> appeared first on <a href="https://erjenrijnders.nl">Erjen Rijnders</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://erjenrijnders.nl/2018/08/30/azuread-login-without-credentials-unattended/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
			</item>
	</channel>
</rss>
