Dha*_*tle 7 azure azure-web-sites azure-active-directory
登录到Azure网站后出现此错误:
AADSTS50194:应用程序“ xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxx”未配置为多租户应用程序。在'10 / 15/2018'之后创建的此类应用程序不支持使用/ common端点。使用特定于租户的终结点或将应用程序配置为多租户。
Cor*_*te5 52
如果您是 Azure 管理员收到此消息,则可能是由于错误消息中列出的确切原因 - 您无法使用commonAPI 端点来 MSFT 登录到特定于租户的应用程序。
就我而言,我正在使用示例代码配置应用程序注册 - 需要使用新端点修改示例代码。即以下行:
let kAuthority = "https://login.microsoftonline.com/common"
需要改为:
let kAuthority = "https://login.microsoftonline.com/MY_TENANT_NAME"
可以通过在 Azure 搜索栏中键入“租户状态”来获取 Azure 组织的租户名称。
Xamarin:上述说明适用于 MSAL iOS - 对于 Xamarin MSAL Android/iOS,没有直接方法可以在主调用中设置权限。它需要链接到交互式登录调用。
例如,这里的示例代码:
authResult = await App.PCA.AcquireTokenInteractive(App.Scopes)
.WithParentActivityOrWindow(App.ParentWindow)
.ExecuteAsync();
Run Code Online (Sandbox Code Playgroud)
需要改成这样:
authResult = await App.PCA.AcquireTokenInteractive(App.Scopes)
.WithAuthority("https://login.microsoftonline.com/YOUR_TENANT_NAME")
.WithParentActivityOrWindow(App.ParentWindow)
.ExecuteAsync();
Run Code Online (Sandbox Code Playgroud)
Dha*_*tle 10
原来我的帐户实际上不在Azure AD上,因此我需要在portal.azure.com上的“支持的帐户类型”下检查“任何组织目录中的帐户”
具体来说:portal.azure.com> Azure Active Directory>应用程序注册(预览)>您的应用程序>身份验证>支持的帐户类型>任何组织目录中的帐户
Sat*_*hia 10
在 azure 中使用以下选项启用多租户。
portal.azure.com -> Azure Active Directory -> 应用注册 -> 选择你的应用 -> 身份验证 -> 支持的帐户类型 -> 任何组织目录中的帐户(任何 Azure AD 目录 - 多租户)
当您希望允许公共用户时,应启用此功能。
如果您想将用户授权到组织级别(私人用户)。使用以下选项。
let authUrl = "https://login.microsoftonline.com/common"
Run Code Online (Sandbox Code Playgroud)
更改如下:
let authUrl= "https://login.microsoftonline.com/MY_TENANT_NAME"
Run Code Online (Sandbox Code Playgroud)
小智 9
如此处所述,如果您使用的应用程序具有Microsoft.AspNetCore.Authentication.MicrosoftAccount,Microsoft 帐户 OAuth 提供程序默认使用公共终结点:
https://login.microsoftonline.com/common/oauth2/v2.0/authorize
Run Code Online (Sandbox Code Playgroud)
假定这是一个多租户应用程序,并且具有“任何组织目录中的帐户”权限级别。
如果您想要单个租户应用程序,则必须在以下位置指定授权和令牌端点Startup.cs:
services.AddAuthentication().AddMicrosoftAccount(microsoftOptions =>
{
microsoftOptions.AuthorizationEndpoint = "https://login.microsoftonline.com/YOUR_TENANT_ID/oauth2/v2.0/authorize";
microsoftOptions.TokenEndpoint = "https://login.microsoftonline.com/YOUR_TENANT_ID/oauth2/v2.0/token";
microsoftOptions.ClientId = Configuration["Authentication:Microsoft:ClientId"];
microsoftOptions.ClientSecret = Configuration["Authentication:Microsoft:ClientSecret"];
});
Run Code Online (Sandbox Code Playgroud)
端点的 URL 可以在 Azure 上的应用程序注册概述页面的端点选项卡中找到,OAuth 2.0 授权端点和令牌端点的 URL 中已包含您的租户 ID。
关于 的文档MicrosoftAccountOptions。
由于某种原因YOUR_TENANT_NAME似乎对我不起作用。它对其他人有效,因此您仍然应该尝试一下。
以下解决方案对我有用,而不是上述解决方案:
authority: "https://login.microsoftonline.com/Your_Tenant_ID"
Run Code Online (Sandbox Code Playgroud)
您可以Your_Tenant_ID通过在 Azure 搜索栏中键入租户属性来查找。
| 归档时间: |
|
| 查看次数: |
7662 次 |
| 最近记录: |