我有一个我想提供图形访问的现有B2C应用程序。
我以前设置了此问题,但现在想复制它,但是我能找到的一切都是针对新应用程序。我介绍了较旧的图,但我认为我使用的文章已经被移动,因为一切都在谈论新图API
是否有人看到了一篇文章,描述了从Azure Graph到Microsoft Graph(新版本)(新版本)B2C应用程序的过程,这将是很棒的
谢谢
注册图形API
的应用程序除了在B2C目录中注册该申请外,我们还必须为图形API创建应用程序注册。您需要的三个密钥/ID值是tenantid,Objectid,和appprincipalid。
要获取TenantID,请登录新门户中的Azure AD B2C目录。
https://portal.azure.com/
登录后选择正确的目录(右上角)。
单击附近的帮助按钮(圆圈内的问号)页面的右上角。在出现的菜单中,单击"显示诊断"选项。这将在一个新的弹出/窗口。寻找"租户"阵列并找到条目带有您希望注册的目录的显示名称应用。该条目的" id"属性是tenantid。
示例:
{
"clientSessionStartDate": {
//stuff will be here ...
},
//
// more shtuff you don't care about will be here ...
//
"tenants": [
{
"id": "SomeUUIDwithlike36charactersSometime",
"domainName": "yourtenantname.onmicrosoft.com",
"displayName": "displanynameoftenant",
"isSignedInTenant": true
},
// ... snippity lemon
]
// ... snip some more
}
您还需要一个唯一的应用程序秘密,并且AppPrincipalid才能成为为新应用程序生成。
此外,要为应用程序设置正确的权限,您将需要它的" objectid"。
注册应用程序并生成这些值的过程更复杂,需要一个特殊的模块和要下载和安装的在线登录模块。
另外,请确保您安装了最新版本的PowerShell您的系统,否则您将无法使用Azure模块。
登录助手:https://www.microsoft.com/en-us/download/details.aspx?id=41950Azure AD PowerShell模块:http://go.microsoft.com/fwlink/p/?linkid=236297
使用PowerShell创建申请注册下一节是文档几乎逐字复制。
https://azure.microsoft.com/en-us/documentation/articles/active-directory-b2c-devquickstarts-graph-dotnet/
安装PowerShell模块后,打开PowerShell并连接到您的B2C租户。
> $msolcred = Get-Credential
跑步后,您将被提示用户名和密码,输入用户名和密码您的B2C租户管理员帐户的帐户。
> Connect-MsolService -credential $msolcred
在创建应用程序之前,您需要生成新客户端秘密。您的应用程序将使用客户的秘密来验证Azure AD并获取访问令牌。您可以生成一个有效的秘密在PowerShell中:
> $bytes = New-Object Byte[] 32
> $rand = [System.Security.Cryptography.RandomNumberGenerator]::Create()
> $rand.GetBytes($bytes)
> $rand.Dispose()
> $newClientSecret = [System.Convert]::ToBase64String($bytes)
> $newClientSecret
最终命令应打印您的新客户秘密。将其复制在安全的地方。稍后您需要。现在,您可以通过提供新客户秘密作为应用程序的凭据来创建您的应用程序:
> New-MsolServicePrincipal -DisplayName "My New B2C Graph API App" -Type password -Value $newClientSecret
示例输出:
DisplayName : My New B2C Graph API App
ServicePrincipalNames : {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
ObjectId : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
AppPrincipalId : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
TrustedForDelegation : False
AccountEnabled : True
Addresses : {}
KeyType : Password
KeyId : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
StartDate : 1/1/2017 1:33:09 AM
EndDate : 1/1/2017 1:33:09 AM
Usage : Verify
如果您成功创建了应用程序,则应打印出来应用程序的属性像上面的属性,但混合了alpha-numeric字符。你们两个都需要objectid和appprincipalid,因此也要复制这些值。
您还需要B2C目录的租户ID。
在B2C租户中创建应用程序后,您需要分配它需要执行用户CRUD操作的权限。分配应用程序三个角色:目录阅读器(读取用户),目录作家(创建和更新用户)和用户帐户管理员(删除用户)。这些角色具有众所周知的标识符,因此您可以用上面的objectid替换-rolemembembigtID参数,运行以下命令。要查看所有目录角色的列表,尝试运行get-msolrole。
> Add-MsolRoleMember -RoleObjectId 88d8e3e3-8f55-4a1e-953a-9b9898b8876b -RoleMemberObjectId <Your-ObjectId> -RoleMemberType servicePrincipal
> Add-MsolRoleMember -RoleObjectId 9360feb5-f418-4baa-8175-e2a00bac4301 -RoleMemberObjectId <Your-ObjectId> -RoleMemberType servicePrincipal
> Add-MsolRoleMember -RoleObjectId fe930be7-5e62-47db-91af-98c3a49a38b1 -RoleMemberObjectId <Your-ObjectId> -RoleMemberType servicePrincipal
您现在有一个有权创建,阅读,更新,并从您的B2C租户中删除用户。
我完全忘记了这个很好的答案,这就是您的做法
在Azure Active Directory B2C