示例:
Scope名称:"portal/aws"
最终范围名称:
"api://6ea427d1-d3f6-479c-8cc8-f4cb73278354/portal/aws"
i在我的应用程序中的Azure门户中注册了相同的范围。
曝光API
,但是,当我尝试将URL重定向到
/oauth2/v2.0/授权时,我会收到以下消息错误:
INVALID_RESOURCE -AADSTS500011:命名的资源主管
API:// 6EA427D1-D3F6-479C-8CC8-F4CB73278354/PORTAL在
名为EB42C583-B4D7-4A81-A52B-D35FF307F901的租户。这可以
如果管理员尚未安装应用程序,则会发生
租户或租户中的任何用户同意。你可能
已将您的身份验证请求发送给错误的租户。
My code in Typescipt:
const params = [
"client_id=" + clientId,
"response_type=code",
"redirect_uri=" + encodeURIComponent(`${redirectURI}/callback`),
"response_mode=query",
"scope=" + encodeURIComponent(scopeName), //api://6ea427d1-d3f6-479c-8cc8-f4cb73278354/portal/aws
"state=" + state,
"code_challenge=" + codeChallenge,
"code_challenge_method=S256"
];
const urlSSO = `${endpointAzure}/oauth2/v2.0/authorize?${params.join("&")}`;
return urlSSO;
api://6ea427d1-d3f6-479c-8cc8-f4cb73278354/portal/aws
api://6ea427d1-d3f6-479c-8cc8-f4cb73278354/portal
。
确保您正在公开一个正确的地址。
如果您在整个范围上使用
encodeURIComponent()
Azure
误解范围。 你可以像
"scope=" + encodeURIComponent("api://6ea427d1-d3f6-479c-8cc8-f4cb73278354/portal/aws")
或只是硬编码以进行测试:
"scope=api://6ea427d1-d3f6-479c-8cc8-f4cb73278354/portal/aws"
在您的错误消息中,指出
tenant mismach
。
确保在身份验证请求中使用了正确的租户ID。如果您的应用程序是多租户,请确保适当为外部租户设置。
房客ID在您的Azure端点中应该是正确的:
https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/authorize
.此外,请确保对用户同意API许可。如果不是,请尝试根据API许可在Azure Portal中授予管理员同意。
Expose an API
.
的配置。Expose an API
。确保客户端ID匹配注册应用程序。检查应用程序ID是否正确设置在
(api://{client-id})
中。
您还会在重定向之前记录范围。