我有一个标准的Microsoft Graph代码示例,它执行以下操作:
AuthenticationContext authContext = new AuthenticationContext(SettingsHelper.AzureADAuthority);
string redirectUri = Url.Action("EmployeeAuthorize", "Account", null, Request.Url.Scheme);
Uri authUri = authContext.GetAuthorizationRequestURL(SettingsHelper.O365UnifiedResource, SettingsHelper.ClientId, new Uri(redirectUri), UserIdentifier.AnyUser, null);
return Redirect(authUri.ToString());
这将打开我尽可能自定义的Microsoft登录页面,并通过Azure AD,我可以访问Azure AD或SharePoint的统一图形API,一个用于业务的驱动器等...
问题是高管们根本不喜欢登录体验,即使他们喜欢通过统一的图形API访问office365,我也在问我如何使用以下标准创建自定义体验:
基本上100%自定义登录体验和访问Graph API的令牌。
一种可能的解决方案可能是:
方案: 1.用户仅通过我们的UI创建一个帐户(foo@outlook.com / mypassword),我们将其保存在数据库\服务结构中。这允许我们创建自己的角色。 2.创建帐户后,我们为foo_outlook@tenant.com创建一个azure AD帐户(api \ powershell)。这可以满足登录名中的Azure AD租户要求。 3.当用户再次登录时,我们使用foo_outlook@tenant.com \ mypassword访问Azure AD。但这需要图API的API,我可以使用用户名&获取令牌的密码,我不确定这是否存在?
我还需要第三方身份,但该功能尚不可用。
但我能否至少创建自己的100%个人登录体验并获得访问图API的令牌?
感谢 罗布
答案 0 :(得分:0)
很高兴看到您在此处使用Microsoft Graph。 Rob,您似乎在这里提出了许多问题,包括自定义登录体验,拥有自己的登录体验(可能但有一些限制),支持社交身份提供者,访客用户,用户角色定义您的应用程序,Microsoft Graph功能。我不能在这里回答你的所有问题,但可以给你一些答案
Azure AD确实具有一些企业对企业功能 - 您可以在此处找到更多信息:https://www.youtube.com/watch?v=Wo5J61Hp_Z0和https://channel9.msdn.com/Series/Azure-AD-Identity/AzureADB2B。这将允许您邀请外部用户(来宾)共享/访问您的应用程序。它也支持Microsoft Accounts社交身份,但尚不支持其他身份提供商(如FB或Google)。
Azure AD确实为登录页面提供了一些有限的租户品牌。您可以为OAuth(密码流)使用不同的流,您可以在其中构建自己的登录体验以获取用户名/密码并将其发送到AAD进行身份验证。但是这样做会失去很多,比如MFA,条件访问流,自助密码重置和B2B流(用于邀请访客并签名)。
访客用户(您已邀请)有点像普通用户,因此他们也可以使用使用Microsoft Graph的应用。目前Microsoft Graph没有公开Yammer对话BTW。
还有一种方法可以定义应用程序特定角色(如管理员,高级客户端等),这些角色可以分配给用户/来宾,作为将应用程序分配给该用户的一部分。 Dushyant在这里有一个很好的博客:http://www.dushyantgill.com/blog/2014/12/10/roles-based-access-control-in-cloud-applications-using-azure-ad/
HTHS,
答案 1 :(得分:0)
Azure B2C和B2P功能解决了我们与Azure Fabric服务相结合的问题。 https://azure.microsoft.com/en-us/documentation/services/active-directory-b2c/
这些Azure服务处于预览状态,但是当您将B2C,B2P和Azure AD结合使用时,您将涵盖客户端,合作伙伴和员工方案。然后,当您添加Azure Fabric Services时,您可以创建一个可以桥接Graph API可能无法使用的区域的服务。