为了自动化我们的构建过程,我一直在寻找通过Powershell脚本更改现有Active Directory应用程序的“回复URL”的可能性。
官方documentation只是介绍了一种方法,如何借助门户网站进行更改。
关于这个话题已经有了一个Github issue。但也许有人在过去面临类似的问题并解决了它?
答案 0 :(得分:10)
使用Active Directory Powershell Module,这甚至更简单。 您首先需要安装模块,如下所示:
Install-Module -Name AzureAD
然后,您需要登录Azure AD。如果您在桌面上,可以使用Connect-AzureAD
以交互方式完成此操作,这会显示一个要求您登录的弹出窗口。如果您是在CI环境中,您可以使用服务主体进行身份验证。
经过身份验证后,以下内容将完成此任务(请记住更改Azure AD应用程序ID(您通常会在MS的错误消息中获得{ID:} Reply URL <bladibla> is not valid for application <guid>
和回复URL:
$appId = "9e5675c3-7cd5-47c1-9d21-72204cd1fe2f" #Remember to change
$newReplyUrl = "https://mywebapp.azurewebsites.net/SignIn/"; #Remember to change
# Get Azure AD App
$app = Get-AzureADApplication -Filter "AppId eq '$($appId)'"
$replyUrls = $app.ReplyUrls;
# Add Reply URL if not already in the list
if ($replyUrls -NotContains $newReplyUrl) {
$replyUrls.Add($newReplyUrl)
Set-AzureADApplication -ObjectId $app.ObjectId -ReplyUrls $replyUrls
}
答案 1 :(得分:3)
作为替代方案,您可以将以下脚本放在控制台应用程序中,然后从Powershell脚本中调用此程序。
首先,请添加nuget包Microsoft.Azure.ActiveDirectory.GraphClient
。
//First, log in into Azure:
Uri servicePointUri = new Uri("https://graph.windows.net");
Uri serviceRoot = new Uri(servicePointUri, "YourTenantId");
ActiveDirectoryClient activeDirectoryClient = new ActiveDirectoryClient(serviceRoot,
async () => await AcquireTokenAsyncForUser("YourTenant.onmicrosoft.com", "ClientIdForThisApplication"));
//A popup will now be shown to you, requiring you to log in into the AAD.
//Find your application
var existingApp = activeDirectoryClient.Applications.Where(s => s.DisplayName == "NameOfYourApplication").Take(1).ExecuteAsync().Result;
if (existingApp != null && existingApp.CurrentPage != null && existingApp.CurrentPage.Count == 1)
{
//Application found
var app = existingApp.CurrentPage.First();
//Change the Reply Url
app.ReplyUrls.Clear();
app.ReplyUrls.Add("http://YourNewReplyUrl/");
app.UpdateAsync().Wait();
}
有关您需要更改的内容的更多详细信息:
YourTenantId
,这是用于识别您的天蓝活动目录(AAD)的GUID。YourTenant.onmicrosoft.com
,基本上这是您的AAD名称,后跟&#34; .onmicrosoft.com&#34;。ClientIdForThisApplication
,您必须手动在应用程序下的AAD中添加上述控制台应用程序。 (作为Native Client应用程序)。在“配置”选项卡中,您将找到此应用程序的客户端ID。这只需要完成一次,您可以继续使用此应用程序(及其客户端ID)进行所有构建。NameOfYourApplication
,您希望更改的应用程序的名称,如您在AAD中所知。http://YourNewReplyUrl/
,您的新回复网址。(小披露,我已经从我现有的代码中删除了上述代码,我想我已经复制了所有要求,但我还没有测试过上述结果。 )