创建 identityProvider(已弃用)

命名空间:microsoft.graph

重要

Microsoft Graph /beta 版本下的 API 可能会发生更改。 不支持在生产应用程序中使用这些 API。 若要确定 API 是否在 v1.0 中可用,请使用 版本 选择器。

警告

此标识提供程序 API 已弃用,并将在 2023 年 3 月之后停止返回数据。 请使用新的 标识提供程序 API

创建新的 identityProvider 对象。

此 API 可用于以下国家级云部署

全局服务 美国政府 L4 美国政府 L5 (DOD) 由世纪互联运营的中国

权限

为此 API 选择标记为最低特权的权限。 只有在应用需要它时,才使用更高的特权权限。 有关委派权限和应用程序权限的详细信息,请参阅权限类型。 要了解有关这些权限的详细信息,请参阅 权限参考

权限类型 最低特权权限 更高特权权限
委派(工作或学校帐户) IdentityProvider.ReadWrite.All 不可用。
委派(个人 Microsoft 帐户) 不支持。 不支持。
应用程序 IdentityProvider.ReadWrite.All 不可用。

重要

在具有工作或学校帐户的委托方案中,必须为登录用户分配受支持的Microsoft Entra角色或具有支持的角色权限的自定义角色。 外部标识提供者管理员 是此操作支持的最低特权角色。

HTTP 请求

POST /identityProviders

请求标头

名称 说明
Authorization 持有者 {token}。 必填。 详细了解 身份验证和授权
Content-Type application/json. 必需。

请求正文

在请求正文中,仅为 Azure AD B2C) 对象提供 identityProvideropenIdConnectProvider (的 JSON 表示形式。 下表中列出的所有属性均未必需属性。

identityProvider 对象

属性 类型 说明
clientId 字符串 应用程序的客户端 ID。 这是向标识提供程序注册应用程序时获取的客户端 ID。
clientSecret 字符串 应用程序的客户端密码。 这是向标识提供程序注册应用程序时获取的客户端密码。
name 字符串 标识提供程序的显示名称。
type 字符串 标识提供程序类型。
    对于 B2B 方案:
  • Google
  • Facebook
    对于 B2C 方案:
  • Microsoft
  • Google
  • Amazon
  • LinkedIn
  • Facebook
  • GitHub
  • Twitter
  • 微博
  • QQ
  • 微信
  • OpenIDConnect

openIdConnectProvider 对象

属性 类型 说明
clientId 字符串 应用程序的客户端 ID。 这是向标识提供程序注册应用程序时获取的客户端 ID。
clientSecret 字符串 应用程序的客户端密码。 这是向标识提供程序注册应用程序时获取的客户端密码。
name 字符串 标识提供程序的显示名称。
type 字符串 标识提供程序类型。 该值必须为 OpenIdConnect
claimsMapping claimsMapping userIddisplayname 属性在 claimsMapping 对象中是必需的。
metadataUrl String OpenID Connect 标识提供者的元数据文档的 URL。
responseMode String 定义用于将数据从自定义标识提供者发送回 Azure AD B2C 的方法。 可以使用以下响应模式:
  • form_post :建议使用此响应模式,以获得最佳安全性。 响应通过 HTTP POST 方法传输,代码或令牌使用 application/x-www-form-urlencoded 格式在正文中编码。
  • query :代码或令牌作为查询参数返回。
responseType String 描述在初始调用中发送回自定义标识提供者authorization_endpoint的信息类型。 可以使用以下响应类型:
  • code :根据授权代码流,代码将返回到 Azure AD B2C。 Azure AD B2C 继续调用 token_endpoint以交换令牌的代码。
  • id_token :ID 令牌从自定义标识提供者返回到 Azure AD B2C。
  • token :访问令牌从自定义标识提供者返回到 Azure AD B2C。 (目前 Azure AD B2C 不支持此值)
范围 String 作用域定义要从自定义标识提供者收集的信息和权限。

响应

如果成功,此方法仅 201 Created 返回响应正文中 Azure AD B2C) 对象的响应代码和 identityProvideropenIdConnectProvider (。 如果失败,将返回 4xx 错误并显示具体详细信息。

示例

示例 1:创建特定 identityProvider

请求

以下示例显示了一个请求。

POST https://graph.microsoft.com/beta/identityProviders
Content-type: application/json

{
  "@odata.type": "microsoft.graph.identityProvider",
  "name": "Login with Amazon",
  "type": "Amazon",
  "clientId": "56433757-cadd-4135-8431-2c9e3fd68ae8",
  "clientSecret": "000000000000"
}

响应

以下示例显示了相应的响应。

注意:为了提高可读性,可能缩短了此处显示的响应对象。

HTTP/1.1 201 Created
Content-type: application/json

{
   "@odata.type": "microsoft.graph.identityProvider",
    "id": "Amazon-OAUTH",
    "name": "Login with Amazon",
    "type": "Amazon",
    "clientId": "56433757-cadd-4135-8431-2c9e3fd68ae8",
    "clientSecret": "*****"
}

示例 2:仅为 Azure AD B2C) 创建特定的 openIDConnectProvider (

请求

以下示例显示了一个请求。

POST https://graph.microsoft.com/beta/identityProviders
Content-type: application/json

{
  "@odata.type": "microsoft.graph.openIdConnectProvider",
    "name": "Login with the Contoso identity provider",
    "type": "OpenIDConnect",
    "clientId": "56433757-cadd-4135-8431-2c9e3fd68ae8",
    "clientSecret": "12345",
    "claimsMapping": {
        "userId": "myUserId",
        "givenName": "myGivenName",
        "surname": "mySurname",
        "email": "myEmail",
        "displayName": "myDisplayName"
    },
    "domainHint": "mycustomoidc",
    "metadataUrl": "https://mycustomoidc.com/.well-known/openid-configuration",
    "responseMode": "form_post",
    "responseType": "code",
    "scope": "openid"
}

响应

以下示例显示了相应的响应。

注意:为了提高可读性,可能缩短了此处显示的响应对象。

HTTP/1.1 201 Created
Content-type: application/json

{
  "@odata.type": "microsoft.graph.openIdConnectProvider",
  "id": "OIDC-V1-MyTest-085a8a0c-58cb-4b6d-8e07-1328ea404e1a",
  "name": "Login with the Contoso identity provider",
  "type": "OpenIDConnect",
  "clientId": "56433757-cadd-4135-8431-2c9e3fd68ae8",
  "clientSecret": "12345",
  "claimsMapping": {
      "userId": "myUserId",
      "givenName": "myGivenName",
      "surname": "mySurname",
      "email": "myEmail",
      "displayName": "myDisplayName"
  },
  "domainHint": "mycustomoidc",
  "metadataUrl": "https://mycustomoidc.com/.well-known/openid-configuration",
  "responseMode": "form_post",
  "responseType": "code",
  "scope": "openid"
}