如何在世纪互联版的Office 365的Azure AD中注册应用程序
背景:
=====
目前中国区的Office 365由世纪互联进行运营,且中国区的Office 365与全球版有一定的功能差异,因此,我们在开发O365的应用会遇到一些问题,比如在中国区的O365后台中没有Azure AD菜单,如下图:
而在全球版的O365上,是具有Azure AD菜单的:
这样,对于需要结合O365的Azure AD来进行开发的应用程序而已,将会造成一定的不便。那么,我们在中国版O365上应该如何来将应用程序注册到Azure AD并开发相关应用程序呢?
解决方案:
=====
上图中的Azure AD菜单主要就是用于将应用程序注册到某个Azure订阅的AD中,其实O365本身是自带一个免费Azure AD用于用户身份管理及应用程序认证,那么在这里我们可以利用O365自带的AzureAD实现客户的需求,即从自带的AAD中利用Azure AD 的Graph API获取用户身份信息。为了使用Graph API访问Azure AD,应用程序需要提供下面三个参数给AAD以便做认证:
1) 租户域名:如xxx.partner.onmschina.cn
2) 应用程序ID:应用程序注册时提供给AAD的32位GUID值
3) 应用程序密钥:应用程序注册时提供给AAD的密钥
利用“用于Windows PowerShell的Windows Azure Active Directory模块”这个工具,我们可以将应用程序注册到O365的AAD中:
下载并安装:Windows Azure Active Directory Module for Windows PowerShell (64-bit version)
下载并安装:Microsoft Online Services Sign-In Assistant
安装好后运行Windows Azure Active Directory Module for Windows PowerShell程序,输入以下命令:
输入O365管理员帐号密码然后登录进去:
登录后依次输入下列Powershell注册应用程序:
- Import-Module MSOnline
- Import-Module MSOnlineExtended
- $servicePrincipalName =“O365GraphApiDemo”
- $sp = New-MsolServicePrincipal -ServicePrincipalNames $servicePrincipalName -DisplayName $servicePrincipalName -AppPrincipalId “7D2081FD-4083-4867-89B4-EB2E705E2D5C”
- New-MsolServicePrincipalCredential -ObjectId $sp.ObjectId -Type Password -Value “FStnXT1QON84B5o38aEmFdlNhEnYtzJ91Gg/JH/Jxiw=”
- Add-MsolRoleMember -RoleObjectId “62e90394-69f5-4237-9190-012177145e10″ -RoleMemberType ServicePrincipal -RoleMemberObjectId $sp.ObjectId
其中3.中的是任意起的应用程序名字,4.中的-AppPrincipalID参数指定的是一个任意的32位GUID值,5.中-Value是密码,6.中的-RoleObjectId参数的值不能改
执行完应该是这样子的:
这样应用程序开发需要的三个参数就准备好了,例如上面执行后获取的参数是:
1) 租户域名:gomensoft.partner.onmschina.cn
2) 应用程序ID:7D2081FD-4083-4867-89B4-EB2E705E2D5C
3) 应用程序密钥:FStnXT1QON84B5o38aEmFdlNhEnYtzJ91Gg/JH/Jxiw=
下载这个使用Azure AD Graph API 进行用户管理的示例程序:https://code.msdn.microsoft.com/Write-Sample-App-for-79e55502
修改Web.config并提供以上三个参数:
中国区的O365还需要修改几个URL:
编译并运行成功是这样子的,成功将O365中的所有用户列出并可以进行增加,删除,以及进行用户角色管理:
====================
微软合作伙伴技术顾问
黄国敏