如何使用具有门户体验的 Graph API 创建 Azure AD 应用程序
How to create Azure AD application with the Graph API with portal experience
在新的 Azure 门户中,我可以创建新的应用程序注册。我发现此操作包含多个步骤,我想用图表 API.
实现这些步骤
这是我想用 Graph 模拟的门户体验 API:
- 在应用程序注册中 blade 我按添加 + link 创建
注册测试应用 A.
- 我点击测试应用程序 A,此应用程序注册的 blade 打开。
在此 blade 中,本地目录中托管应用程序的值
是一个 link 名为测试应用 A.
- 我单击那个 link 和一个新的企业应用程序 - 预览
blade 测试应用程序 A 打开。在 blade 上启用删除 link
和可点击。在 MANAGE 下的 blade link
存在条件访问。
- 我关闭所有 blade 并打开企业应用程序 blade。那里
在“管理”下,我单击“所有应用程序”。
- 在企业应用程序上-所有应用程序视图我看到了测试
应用 A 已列出。
这就是我对图表所做的 API:
- 我向 https://graph.windows.net/{tenant}/applications?api-version=1.6 发送 POST 请求以创建测试应用程序 A。
- 我点击测试应用程序 A,此应用程序注册的 blade 打开。
在此 blade 中,本地目录中托管应用程序的值
是文本登录到应用程序以创建本地实例。
- 我向 https://graph.windows.net/{tenant)/servicePrincipals?api-version=1.6 发送 POST 请求以创建服务主体。请求的 JSON 主体仅包含 属性 appId,其值是测试应用程序 A 的应用程序 ID。这会将本地目录中托管应用程序的值更改为 link 命名的测试应用程序 A。
- 我单击那个 link 和一个新的企业应用程序 - 预览
blade 测试应用程序 A 打开。在 blade 上禁用删除 link
并且不可点击。在 MANAGE 下的 blade link
缺少条件访问。
- 我关闭所有 blade 并打开企业应用程序 blade。那里
在“管理”下,我单击“所有应用程序”。
- 关于企业应用-所有应用查看应用测试
应用程序 A 未列出。
我错过了什么?我还必须在第 3 步中发送哪些属性。我还需要做什么?
您必须在创建 服务主体 期间指定以下内容:
"tags": [
"WindowsAzureActiveDirectoryIntegratedApp"
]
或者您可以用它更新现有的服务主体。否则你所做的是正确的。
所以服务主体创建 JSON 看起来像:
{
"appId": "0e5836bf-ac8d-4b46-9cbb-5b3e8ebcdd37",
"tags":[
"WindowsAzureActiveDirectoryIntegratedApp"
]
}
或者您可以通过以下方式对服务主体执行 PATCH:
{
"tags":[
"WindowsAzureActiveDirectoryIntegratedApp"
]
}
关于标签
似乎当您添加此标记时,主体在 "Enterprise Applications" 列表(实际上是服务主体列表)中可见。条件访问也已启用。
这个标签似乎存在于通过任何门户为应用程序创建的所有服务主体上。
虽然也有没有标记的服务主体,例如 Graph API 和 Azure 门户的主体。
关键似乎是这些服务在您的目录中具有某些访问权限,但它们不应该在您的控制之下。该标签区分了应该对您可见的主体。即使没有标签,主体也可以看到,但只能通过您创建的应用程序看到,正如我们在此处看到的那样。
有趣的是,像 Microsoft Graph API 这样的主体有一个 appId,但没有 appOwnerTenantId。 publisherName 也为空。
这主要只是猜测,因为我实际上并不在 Microsoft 工作,但底线似乎是,如果您希望 AAD 处理委托人,就像您通过门户为应用程序创建委托人一样,您必须还要指定该标签。
在新的 Azure 门户中,我可以创建新的应用程序注册。我发现此操作包含多个步骤,我想用图表 API.
实现这些步骤这是我想用 Graph 模拟的门户体验 API:
- 在应用程序注册中 blade 我按添加 + link 创建 注册测试应用 A.
- 我点击测试应用程序 A,此应用程序注册的 blade 打开。 在此 blade 中,本地目录中托管应用程序的值 是一个 link 名为测试应用 A.
- 我单击那个 link 和一个新的企业应用程序 - 预览 blade 测试应用程序 A 打开。在 blade 上启用删除 link 和可点击。在 MANAGE 下的 blade link 存在条件访问。
- 我关闭所有 blade 并打开企业应用程序 blade。那里 在“管理”下,我单击“所有应用程序”。
- 在企业应用程序上-所有应用程序视图我看到了测试 应用 A 已列出。
这就是我对图表所做的 API:
- 我向 https://graph.windows.net/{tenant}/applications?api-version=1.6 发送 POST 请求以创建测试应用程序 A。
- 我点击测试应用程序 A,此应用程序注册的 blade 打开。 在此 blade 中,本地目录中托管应用程序的值 是文本登录到应用程序以创建本地实例。
- 我向 https://graph.windows.net/{tenant)/servicePrincipals?api-version=1.6 发送 POST 请求以创建服务主体。请求的 JSON 主体仅包含 属性 appId,其值是测试应用程序 A 的应用程序 ID。这会将本地目录中托管应用程序的值更改为 link 命名的测试应用程序 A。
- 我单击那个 link 和一个新的企业应用程序 - 预览 blade 测试应用程序 A 打开。在 blade 上禁用删除 link 并且不可点击。在 MANAGE 下的 blade link 缺少条件访问。
- 我关闭所有 blade 并打开企业应用程序 blade。那里 在“管理”下,我单击“所有应用程序”。
- 关于企业应用-所有应用查看应用测试 应用程序 A 未列出。
我错过了什么?我还必须在第 3 步中发送哪些属性。我还需要做什么?
您必须在创建 服务主体 期间指定以下内容:
"tags": [
"WindowsAzureActiveDirectoryIntegratedApp"
]
或者您可以用它更新现有的服务主体。否则你所做的是正确的。
所以服务主体创建 JSON 看起来像:
{
"appId": "0e5836bf-ac8d-4b46-9cbb-5b3e8ebcdd37",
"tags":[
"WindowsAzureActiveDirectoryIntegratedApp"
]
}
或者您可以通过以下方式对服务主体执行 PATCH:
{
"tags":[
"WindowsAzureActiveDirectoryIntegratedApp"
]
}
关于标签
似乎当您添加此标记时,主体在 "Enterprise Applications" 列表(实际上是服务主体列表)中可见。条件访问也已启用。
这个标签似乎存在于通过任何门户为应用程序创建的所有服务主体上。
虽然也有没有标记的服务主体,例如 Graph API 和 Azure 门户的主体。
关键似乎是这些服务在您的目录中具有某些访问权限,但它们不应该在您的控制之下。该标签区分了应该对您可见的主体。即使没有标签,主体也可以看到,但只能通过您创建的应用程序看到,正如我们在此处看到的那样。
有趣的是,像 Microsoft Graph API 这样的主体有一个 appId,但没有 appOwnerTenantId。 publisherName 也为空。
这主要只是猜测,因为我实际上并不在 Microsoft 工作,但底线似乎是,如果您希望 AAD 处理委托人,就像您通过门户为应用程序创建委托人一样,您必须还要指定该标签。