application: addKey
Artikel
07/18/2022
6 Minuten Lesedauer
3 Mitwirkende
In diesem Artikel
Namespace: microsoft.graph
Fügen Sie einer Anwendung wichtige Anmeldeinformationen hinzu. Diese Methode kann zusammen mit "removeKey " von einer Anwendung verwendet werden, um das Rollen der ablaufenden Schlüssel zu automatisieren.
Im Rahmen der Anforderungsüberprüfung für diese Methode wird ein Besitznachweis für einen vorhandenen Schlüssel überprüft, bevor die Aktion ausgeführt werden kann.
Anwendungen, die keine gültigen Zertifikate besitzen (es wurden noch keine Zertifikate hinzugefügt oder alle Zertifikate sind abgelaufen), können diese Dienstaktion nicht verwenden. Sie können den Vorgang Anwendung aktualisieren verwenden, um stattdessen ein Update durchzuführen.
Berechtigungen
Berechtigungstyp
Berechtigungen (von der Berechtigung mit den wenigsten Rechten zu der mit den meisten Rechten)
Delegiert (Geschäfts-, Schul- oder Unikonto)
Keine.
Delegiert (persönliches Microsoft-Konto)
Keine.
Anwendung
Keine.
Hinweis
Eine Anwendung benötigt keine bestimmte Berechtigung zum Rollen ihrer eigenen Schlüssel.
HTTP-Anforderung
POST /applications/{id}/addKey
Name
Beschreibung
Authorization
Bearer {token}. Erforderlich.
Content-Type
application/json. Erforderlich.
Anforderungstext
Geben Sie im Anforderungstext die folgenden erforderlichen Eigenschaften an.
Eigenschaft
Typ
Beschreibung
keyCredential
keyCredential
Die neuen Anmeldeinformationen für den Anwendungsschlüssel, die hinzugefügt werden sollen. Typ , Verwendung und Schlüssel sind erforderliche Eigenschaften für diese Verwendung. Unterstützte Schlüsseltypen sind:AsymmetricX509Cert: Die Verwendung muss .VerifyX509CertAndPassword: Die Verwendung muss Sign
passwordCredential
passwordCredential
Es muss nur secretText festgelegt werden, der das Kennwort für den Schlüssel enthalten sollte. Diese Eigenschaft ist nur für Schlüssel vom Typ X509CertAndPassworderforderlich. Legen Sie es auf "andernfalls" fest null .
Beweis
Zeichenfolge
Ein selbstsigniertes JWT-Token, das als Besitznachweis für die vorhandenen Schlüssel verwendet wird. Dieses JWT-Token muss mit dem privaten Schlüssel eines der vorhandenen gültigen Zertifikate der Anwendung signiert werden. Das Token sollte den folgenden Anforderungen enthalten:aud – Benutzergruppe muss 00000002-0000-0000-c000-000000000000 sein.iss – Der Aussteller muss die ID der Anwendung sein, die den Anruf tätigt.nbf – Nicht vor der Zeit.exp – Ablaufzeit sollte „nbf“ + 10 Minuten sein. Hier ist ein Codebeispiel , das verwendet werden kann, um dieses Besitznachweistoken zu generieren. Weitere Informationen zu den Anspruchstypen finden Sie unter Anspruchsnutzlast .
Antwort
Bei erfolgreicher Ausführung gibt die Methode den 200 OK Antwortcode und ein neues keyCredential-Objekt im Antworttext zurück.
Beispiele
Beispiel 1: Hinzufügen einer neuen Schlüsselanmeldeinformationen zu einer Anwendung
Anforderung
Nachfolgend sehen Sie ein Beispiel der Anforderung.
POST https://graph.microsoft.com/v1.0/applications/{id}/addKey
Content-type: application/json
{
"keyCredential": {
"type": "AsymmetricX509Cert",
"usage": "Verify",
"key": "MIIDYDCCAki..."
},
"passwordCredential": null,
"proof":"eyJ0eXAiOiJ..."
}
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var keyCredential = new KeyCredential
{
Type = "AsymmetricX509Cert",
Usage = "Verify",
Key = Convert.FromBase64String("MIIDYDCCAki...")
};
PasswordCredential passwordCredential = null;
var proof = "eyJ0eXAiOiJ...";
await graphClient.Applications["{application-id}"]
.AddKey(keyCredential,proof,passwordCredential)
.Request()
.PostAsync();
Ausführliche Informationen zum Hinzufügen des SDK zu Ihrem Projekt und zum Erstellen einer authProvider-Instanz finden Sie in der SDK-Dokumentation .
const options = {
authProvider,
};
const client = Client.init(options);
const keyCredential = {
keyCredential: {
type: 'AsymmetricX509Cert',
usage: 'Verify',
key: 'MIIDYDCCAki...'
},
passwordCredential: null,
proof: 'eyJ0eXAiOiJ...'
};
await client.api('/applications/{id}/addKey')
.post(keyCredential);
Ausführliche Informationen zum Hinzufügen des SDK zu Ihrem Projekt und zum Erstellen einer authProvider-Instanz finden Sie in der SDK-Dokumentation .
MSHTTPClient *httpClient = [MSClientFactory createHTTPClientWithAuthenticationProvider:authenticationProvider];
NSString *MSGraphBaseURL = @"https://graph.microsoft.com/v1.0/";
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[MSGraphBaseURL stringByAppendingString:@"/applications/{id}/addKey"]]];
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
NSMutableDictionary *payloadDictionary = [[NSMutableDictionary alloc] init];
MSGraphKeyCredential *keyCredential = [[MSGraphKeyCredential alloc] init];
[keyCredential setType:@"AsymmetricX509Cert"];
[keyCredential setUsage:@"Verify"];
[keyCredential setKey:@"MIIDYDCCAki..."];
payloadDictionary[@"keyCredential"] = keyCredential;
payloadDictionary[@"passwordCredential"] = passwordCredential;
NSString *proof = @"eyJ0eXAiOiJ...";
payloadDictionary[@"proof"] = proof;
NSData *data = [NSJSONSerialization dataWithJSONObject:payloadDictionary options:kNilOptions error:&error];
[urlRequest setHTTPBody:data];
MSURLSessionDataTask *meDataTask = [httpClient dataTaskWithRequest:urlRequest
completionHandler: ^(NSData *data, NSURLResponse *response, NSError *nserror) {
//Request Completed
}];
[meDataTask execute];
Ausführliche Informationen zum Hinzufügen des SDK zu Ihrem Projekt und zum Erstellen einer authProvider-Instanz finden Sie in der SDK-Dokumentation .
GraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider( authProvider ).buildClient();
KeyCredential keyCredential = new KeyCredential();
keyCredential.type = "AsymmetricX509Cert";
keyCredential.usage = "Verify";
keyCredential.key = Base64.getDecoder().decode("MIIDYDCCAki...");
String proof = "eyJ0eXAiOiJ...";
graphClient.applications("{id}")
.addKey(ApplicationAddKeyParameterSet
.newBuilder()
.withKeyCredential(keyCredential)
.withPasswordCredential(passwordCredential)
.withProof(proof)
.build())
.buildRequest()
.post();
Ausführliche Informationen zum Hinzufügen des SDK zu Ihrem Projekt und zum Erstellen einer authProvider-Instanz finden Sie in der SDK-Dokumentation .
//THE GO SDK IS IN PREVIEW. NON-PRODUCTION USE ONLY
graphClient := msgraphsdk.NewGraphServiceClient(requestAdapter)
requestBody := msgraphsdk.New()
keyCredential := msgraphsdk.NewKeyCredential()
requestBody.SetKeyCredential(keyCredential)
type := "AsymmetricX509Cert"
keyCredential.SetType(&type)
usage := "Verify"
keyCredential.SetUsage(&usage)
key := []byte("MIIDYDCCAki...")
keyCredential.SetKey(&key)
requestBody.SetPasswordCredential(nil)
proof := "eyJ0eXAiOiJ..."
requestBody.SetProof(&proof)
applicationId := "application-id"
result, err := graphClient.ApplicationsById(&applicationId).AddKey(application-id).Post(requestBody)
Ausführliche Informationen zum Hinzufügen des SDK zu Ihrem Projekt und zum Erstellen einer authProvider-Instanz finden Sie in der SDK-Dokumentation .
Import-Module Microsoft.Graph.Applications
$params = @{
KeyCredential = @{
Type = "AsymmetricX509Cert"
Usage = "Verify"
Key = [System.Text.Encoding]::ASCII.GetBytes("MIIDYDCCAki...")
}
PasswordCredential = $null
Proof = "eyJ0eXAiOiJ..."
}
Add-MgApplicationKey -ApplicationId $applicationId -BodyParameter $params
Ausführliche Informationen zum Hinzufügen des SDK zu Ihrem Projekt und zum Erstellen einer authProvider-Instanz finden Sie in der SDK-Dokumentation .
Antwort
Nachfolgend sehen Sie ein Beispiel der Antwort.
HTTP/1.1 200 OK
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#microsoft.graph.keyCredential"
}
Beispiel 2: Hinzufügen einer Schlüsselanmeldeinformationen und eines zugehörigen Kennworts für den Schlüssel
Anforderung
Nachfolgend sehen Sie ein Beispiel der Anforderung.
POST https://graph.microsoft.com/v1.0/applications/{id}/addKey
Content-type: application/json
{
"keyCredential": {
"type": "X509CertAndPassword",
"usage": "Sign",
"key": "MIIDYDCCAki..."
},
"passwordCredential": {
"secretText": "MKTr0w1..."
},
"proof":"eyJ0eXAiOiJ..."
}
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var keyCredential = new KeyCredential
{
Type = "X509CertAndPassword",
Usage = "Sign",
Key = Convert.FromBase64String("MIIDYDCCAki...")
};
var passwordCredential = new PasswordCredential
{
SecretText = "MKTr0w1..."
};
var proof = "eyJ0eXAiOiJ...";
await graphClient.Applications["{application-id}"]
.AddKey(keyCredential,proof,passwordCredential)
.Request()
.PostAsync();
Ausführliche Informationen zum Hinzufügen des SDK zu Ihrem Projekt und zum Erstellen einer authProvider-Instanz finden Sie in der SDK-Dokumentation .
const options = {
authProvider,
};
const client = Client.init(options);
const keyCredential = {
keyCredential: {
type: 'X509CertAndPassword',
usage: 'Sign',
key: 'MIIDYDCCAki...'
},
passwordCredential: {
secretText: 'MKTr0w1...'
},
proof: 'eyJ0eXAiOiJ...'
};
await client.api('/applications/{id}/addKey')
.post(keyCredential);
Ausführliche Informationen zum Hinzufügen des SDK zu Ihrem Projekt und zum Erstellen einer authProvider-Instanz finden Sie in der SDK-Dokumentation .
MSHTTPClient *httpClient = [MSClientFactory createHTTPClientWithAuthenticationProvider:authenticationProvider];
NSString *MSGraphBaseURL = @"https://graph.microsoft.com/v1.0/";
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[MSGraphBaseURL stringByAppendingString:@"/applications/{id}/addKey"]]];
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
NSMutableDictionary *payloadDictionary = [[NSMutableDictionary alloc] init];
MSGraphKeyCredential *keyCredential = [[MSGraphKeyCredential alloc] init];
[keyCredential setType:@"X509CertAndPassword"];
[keyCredential setUsage:@"Sign"];
[keyCredential setKey:@"MIIDYDCCAki..."];
payloadDictionary[@"keyCredential"] = keyCredential;
MSGraphPasswordCredential *passwordCredential = [[MSGraphPasswordCredential alloc] init];
[passwordCredential setSecretText:@"MKTr0w1..."];
payloadDictionary[@"passwordCredential"] = passwordCredential;
NSString *proof = @"eyJ0eXAiOiJ...";
payloadDictionary[@"proof"] = proof;
NSData *data = [NSJSONSerialization dataWithJSONObject:payloadDictionary options:kNilOptions error:&error];
[urlRequest setHTTPBody:data];
MSURLSessionDataTask *meDataTask = [httpClient dataTaskWithRequest:urlRequest
completionHandler: ^(NSData *data, NSURLResponse *response, NSError *nserror) {
//Request Completed
}];
[meDataTask execute];
Ausführliche Informationen zum Hinzufügen des SDK zu Ihrem Projekt und zum Erstellen einer authProvider-Instanz finden Sie in der SDK-Dokumentation .
GraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider( authProvider ).buildClient();
KeyCredential keyCredential = new KeyCredential();
keyCredential.type = "X509CertAndPassword";
keyCredential.usage = "Sign";
keyCredential.key = Base64.getDecoder().decode("MIIDYDCCAki...");
PasswordCredential passwordCredential = new PasswordCredential();
passwordCredential.secretText = "MKTr0w1...";
String proof = "eyJ0eXAiOiJ...";
graphClient.applications("{id}")
.addKey(ApplicationAddKeyParameterSet
.newBuilder()
.withKeyCredential(keyCredential)
.withPasswordCredential(passwordCredential)
.withProof(proof)
.build())
.buildRequest()
.post();
Ausführliche Informationen zum Hinzufügen des SDK zu Ihrem Projekt und zum Erstellen einer authProvider-Instanz finden Sie in der SDK-Dokumentation .
//THE GO SDK IS IN PREVIEW. NON-PRODUCTION USE ONLY
graphClient := msgraphsdk.NewGraphServiceClient(requestAdapter)
requestBody := msgraphsdk.New()
keyCredential := msgraphsdk.NewKeyCredential()
requestBody.SetKeyCredential(keyCredential)
type := "X509CertAndPassword"
keyCredential.SetType(&type)
usage := "Sign"
keyCredential.SetUsage(&usage)
key := []byte("MIIDYDCCAki...")
keyCredential.SetKey(&key)
passwordCredential := msgraphsdk.NewPasswordCredential()
requestBody.SetPasswordCredential(passwordCredential)
secretText := "MKTr0w1..."
passwordCredential.SetSecretText(&secretText)
proof := "eyJ0eXAiOiJ..."
requestBody.SetProof(&proof)
applicationId := "application-id"
result, err := graphClient.ApplicationsById(&applicationId).AddKey(application-id).Post(requestBody)
Ausführliche Informationen zum Hinzufügen des SDK zu Ihrem Projekt und zum Erstellen einer authProvider-Instanz finden Sie in der SDK-Dokumentation .
Import-Module Microsoft.Graph.Applications
$params = @{
KeyCredential = @{
Type = "X509CertAndPassword"
Usage = "Sign"
Key = [System.Text.Encoding]::ASCII.GetBytes("MIIDYDCCAki...")
}
PasswordCredential = @{
SecretText = "MKTr0w1..."
}
Proof = "eyJ0eXAiOiJ..."
}
Add-MgApplicationKey -ApplicationId $applicationId -BodyParameter $params
Ausführliche Informationen zum Hinzufügen des SDK zu Ihrem Projekt und zum Erstellen einer authProvider-Instanz finden Sie in der SDK-Dokumentation .
Antwort
Nachfolgend sehen Sie ein Beispiel der Antwort.
HTTP/1.1 200 OK
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#microsoft.graph.keyCredential"
}