Создайте новый объект federatedIdentityCredential для приложения.
Настроив отношение доверия между регистрацией приложения Microsoft Entra и поставщиком удостоверений для вычислительной платформы, вы можете использовать маркеры, выданные этой платформой, для проверки подлинности с помощью платформа удостоверений Майкрософт и вызова API в экосистеме Майкрософт. В приложение можно добавить не более 20 объектов.
Выберите разрешение или разрешения, помеченные как наименее привилегированные для этого API. Используйте более привилегированное разрешение или разрешения только в том случае, если это требуется приложению. Дополнительные сведения о делегированных разрешениях и разрешениях приложений см. в разделе Типы разрешений. Дополнительные сведения об этих разрешениях см. в справочнике по разрешениям.
Тип разрешения
Разрешения с наименьшими привилегиями
Более высокие привилегированные разрешения
Делегированные (рабочая или учебная учетная запись)
Application.ReadWrite.All
Недоступно.
Делегированные (личная учетная запись Майкрософт)
Application.ReadWrite.All
Недоступно.
Приложение
Application.ReadWrite.OwnedBy
Application.ReadWrite.All
HTTP-запрос
Вы можете обратиться к приложению, используя его идентификатор или appId.
Id и appId называются идентификатором объекта и идентификатором приложения (клиента) соответственно в регистрациях приложений в Центр администрирования Microsoft Entra.
POST /applications/{id}/federatedIdentityCredentials
POST /applications(appId='{appId}')/federatedIdentityCredentials
Обязательно. Аудитория, которая может отображаться во внешнем маркере. Это поле является обязательным и должно иметь значение api://AzureADTokenExchange для Microsoft Entra ID. В нем говорится, что платформа удостоверений Майкрософт должны принимать в утверждении aud во входящем маркере. Это значение представляет Microsoft Entra ID во внешнем поставщике удостоверений и не имеет фиксированного значения для всех поставщиков удостоверений. Возможно, вам потребуется создать новую регистрацию приложения в поставщике удостоверений, чтобы служить аудиторией этого маркера. Это поле может принимать только одно значение и имеет ограничение в 600 символов.
эмитент
String
Обязательный. URL-адрес внешнего поставщика удостоверений и должен соответствовать утверждению издателя для внешнего токена, который обменивается. Сочетание значений издателя и субъекта должно быть уникальным в приложении. Он имеет ограничение в 600 символов.
name
String
Обязательный. Уникальный идентификатор для учетных данных федеративного удостоверения, который имеет ограничение в 120 символов и должен быть понятным для URL-адреса. Он неизменяем после создания.
subject
String
Обязательный. Идентификатор внешней рабочей нагрузки программного обеспечения в пределах внешнего поставщика удостоверений. Как и значение аудитории, оно не имеет фиксированного формата, так как каждый поставщик удостоверений использует свой собственный — иногда GUID, иногда идентификатор с разделителями двоеточием, иногда произвольные строки. Здесь значение должно совпадать с вложенным утверждением в токене, представленном Microsoft Entra ID. Он имеет ограничение в 600 символов. Сочетание издателя и субъекта должно быть уникальным в приложении.
Отклик
В случае успешного выполнения этот метод возвращает код отклика 201 Created и объект federatedIdentityCredential в теле отклика.
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new FederatedIdentityCredential
{
Name = "testing02",
Issuer = "https://login.microsoftonline.com/3d1e2be9-a10a-4a0c-8380-7ce190f98ed9/v2.0",
Subject = "a7d388c3-5e3f-4959-ac7d-786b3383006a",
Audiences = new List<string>
{
"api://AzureADTokenExchange",
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Applications["{application-id}"].FederatedIdentityCredentials.PostAsync(requestBody);
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewFederatedIdentityCredential()
name := "testing02"
requestBody.SetName(&name)
issuer := "https://login.microsoftonline.com/3d1e2be9-a10a-4a0c-8380-7ce190f98ed9/v2.0"
requestBody.SetIssuer(&issuer)
subject := "a7d388c3-5e3f-4959-ac7d-786b3383006a"
requestBody.SetSubject(&subject)
audiences := []string {
"api://AzureADTokenExchange",
}
requestBody.SetAudiences(audiences)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
federatedIdentityCredentials, err := graphClient.Applications().ByApplicationId("application-id").FederatedIdentityCredentials().Post(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
FederatedIdentityCredential federatedIdentityCredential = new FederatedIdentityCredential();
federatedIdentityCredential.setName("testing02");
federatedIdentityCredential.setIssuer("https://login.microsoftonline.com/3d1e2be9-a10a-4a0c-8380-7ce190f98ed9/v2.0");
federatedIdentityCredential.setSubject("a7d388c3-5e3f-4959-ac7d-786b3383006a");
LinkedList<String> audiences = new LinkedList<String>();
audiences.add("api://AzureADTokenExchange");
federatedIdentityCredential.setAudiences(audiences);
FederatedIdentityCredential result = graphClient.applications().byApplicationId("{application-id}").federatedIdentityCredentials().post(federatedIdentityCredential);
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.federated_identity_credential import FederatedIdentityCredential
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = FederatedIdentityCredential(
name = "testing02",
issuer = "https://login.microsoftonline.com/3d1e2be9-a10a-4a0c-8380-7ce190f98ed9/v2.0",
subject = "a7d388c3-5e3f-4959-ac7d-786b3383006a",
audiences = [
"api://AzureADTokenExchange",
],
)
result = await graph_client.applications.by_application_id('application-id').federated_identity_credentials.post(request_body)