创建 trustFrameworkKeySet
命名空间:microsoft.graph
重要
Microsoft Graph版本下的 /beta API 可能会发生更改。 不支持在生产应用程序中使用这些 API。 若要确定 API 是否在 v1.0 中可用,请使用 版本 选择器。
创建新的 trustFrameworkKeySet。 trustFrameworkKeySet 的 ID 应位于创建请求中;但是,该服务可对其进行修改。 修改后的 ID 将在响应和位置标头中提供。
权限
要调用此 API,需要以下权限之一。要了解详细信息,包括如何选择权限的信息,请参阅权限。
| 权限类型 |
权限(从最低特权到最高特权) |
| 委派(工作或学校帐户) |
TrustFrameworkKeySet.ReadWrite.All |
| 委派(个人 Microsoft 帐户) |
不支持。 |
| 应用程序 |
TrustFrameworkKeySet.ReadWrite.All |
HTTP 请求
POST /trustFramework/keySets
| 名称 |
说明 |
| Authorization |
Bearer {token}。必需。 |
| Content-type |
application/json. Required. |
请求正文
在请求正文中,提供 trustFrameworkKeySet 对象的 JSON 表示形式。
响应
如果成功,此方法在响应正文中返回 响应代码、新创建对象的位置标头和 201 Created 新的 trustFrameworkKeySet 对象。
示例
示例 1:创建空键集
这是最有用的操作之一。 首先,创建一个空键集。 然后,在新的密钥集内,可以生成密钥、上传手动密码,并上传证书或 PKCS12 密钥。
请求
下面为请求示例。
POST https://graph.microsoft.com/beta/trustFramework/keySets
Content-type: application/json
{
"id": "keyset1"
}
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var trustFrameworkKeySet = new TrustFrameworkKeySet
{
Id = "keyset1",
Keys = new List<TrustFrameworkKey>()
{
new TrustFrameworkKey
{
K = "k-value",
X5c = new List<String>()
{
"x5c-value"
},
X5t = "x5t-value",
Kty = "kty-value",
Use = "use-value",
Exp = 99,
Nbf = 99,
Kid = "kid-value",
E = "e-value",
N = "n-value",
D = "d-value",
P = "p-value",
Q = "q-value",
Dp = "dp-value",
Dq = "dq-value",
Qi = "qi-value"
}
}
};
await graphClient.TrustFramework.KeySets
.Request()
.AddAsync(trustFrameworkKeySet);
const options = {
authProvider,
};
const client = Client.init(options);
const trustFrameworkKeySet = {
id: 'keyset1',
keys: [
{
k: 'k-value',
x5c: [
'x5c-value'
],
x5t: 'x5t-value',
kty: 'kty-value',
use: 'use-value',
exp: 99,
nbf: 99,
kid: 'kid-value',
e: 'e-value',
n: 'n-value',
d: 'd-value',
p: 'p-value',
q: 'q-value',
dp: 'dp-value',
dq: 'dq-value',
qi: 'qi-value'
}
]
};
await client.api('/trustFramework/keySets')
.version('beta')
.post(trustFrameworkKeySet);
MSHTTPClient *httpClient = [MSClientFactory createHTTPClientWithAuthenticationProvider:authenticationProvider];
NSString *MSGraphBaseURL = @"https://graph.microsoft.com/beta/";
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[MSGraphBaseURL stringByAppendingString:@"/trustFramework/keySets"]]];
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
MSGraphTrustFrameworkKeySet *trustFrameworkKeySet = [[MSGraphTrustFrameworkKeySet alloc] init];
[trustFrameworkKeySet setId:@"keyset1"];
NSMutableArray *keysList = [[NSMutableArray alloc] init];
MSGraphTrustFrameworkKey *keys = [[MSGraphTrustFrameworkKey alloc] init];
[keys setK:@"k-value"];
NSMutableArray *x5cList = [[NSMutableArray alloc] init];
[x5cList addObject: @"x5c-value"];
[keys setX5c:x5cList];
[keys setX5t:@"x5t-value"];
[keys setKty:@"kty-value"];
[keys setUse:@"use-value"];
[keys setExp: 99];
[keys setNbf: 99];
[keys setKid:@"kid-value"];
[keys setE:@"e-value"];
[keys setN:@"n-value"];
[keys setD:@"d-value"];
[keys setP:@"p-value"];
[keys setQ:@"q-value"];
[keys setDp:@"dp-value"];
[keys setDq:@"dq-value"];
[keys setQi:@"qi-value"];
[keysList addObject: keys];
[trustFrameworkKeySet setKeys:keysList];
NSError *error;
NSData *trustFrameworkKeySetData = [trustFrameworkKeySet getSerializedDataWithError:&error];
[urlRequest setHTTPBody:trustFrameworkKeySetData];
MSURLSessionDataTask *meDataTask = [httpClient dataTaskWithRequest:urlRequest
completionHandler: ^(NSData *data, NSURLResponse *response, NSError *nserror) {
//Request Completed
}];
[meDataTask execute];
GraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider( authProvider ).buildClient();
TrustFrameworkKeySet trustFrameworkKeySet = new TrustFrameworkKeySet();
trustFrameworkKeySet.id = "keyset1";
LinkedList<TrustFrameworkKey> keysList = new LinkedList<TrustFrameworkKey>();
TrustFrameworkKey keys = new TrustFrameworkKey();
keys.k = "k-value";
LinkedList<String> x5cList = new LinkedList<String>();
x5cList.add("x5c-value");
keys.x5c = x5cList;
keys.x5t = "x5t-value";
keys.kty = "kty-value";
keys.use = "use-value";
keys.exp = 99L;
keys.nbf = 99L;
keys.kid = "kid-value";
keys.e = "e-value";
keys.n = "n-value";
keys.d = "d-value";
keys.p = "p-value";
keys.q = "q-value";
keys.dp = "dp-value";
keys.dq = "dq-value";
keys.qi = "qi-value";
keysList.add(keys);
trustFrameworkKeySet.keys = keysList;
graphClient.trustFramework().keySets()
.buildRequest()
.post(trustFrameworkKeySet);
//THE GO SDK IS IN PREVIEW. NON-PRODUCTION USE ONLY
graphClient := msgraphsdk.NewGraphServiceClient(requestAdapter)
requestBody := msgraphsdk.NewTrustFrameworkKeySet()
id := "keyset1"
requestBody.SetId(&id)
requestBody.SetKeys( []TrustFrameworkKey {
msgraphsdk.NewTrustFrameworkKey(),
k := "k-value"
SetK(&k)
SetX5c( []String {
"x5c-value",
}
x5t := "x5t-value"
SetX5t(&x5t)
kty := "kty-value"
SetKty(&kty)
use := "use-value"
SetUse(&use)
exp := int64(99)
SetExp(&exp)
nbf := int64(99)
SetNbf(&nbf)
kid := "kid-value"
SetKid(&kid)
e := "e-value"
SetE(&e)
n := "n-value"
SetN(&n)
d := "d-value"
SetD(&d)
p := "p-value"
SetP(&p)
q := "q-value"
SetQ(&q)
dp := "dp-value"
SetDp(&dp)
dq := "dq-value"
SetDq(&dq)
qi := "qi-value"
SetQi(&qi)
}
result, err := graphClient.TrustFramework().KeySets().Post(requestBody)
Import-Module Microsoft.Graph.Identity.SignIns
$params = @{
Id = "keyset1"
Keys = @(
@{
K = "k-value"
X5c = @(
"x5c-value"
)
X5t = "x5t-value"
Kty = "kty-value"
Use = "use-value"
Exp = 99
Nbf = 99
Kid = "kid-value"
E = "e-value"
N = "n-value"
D = "d-value"
P = "p-value"
Q = "q-value"
Dp = "dp-value"
Dq = "dq-value"
Qi = "qi-value"
}
)
}
New-MgTrustFrameworkKeySet -BodyParameter $params
响应
以下示例显示了相应的响应。
注意: 为了提高可读性,可能缩短了此处显示的响应对象。
HTTP/1.1 201 Created
Content-type: application/json
Location: /trustFramework/keySets('B2C_1A_keyset1')
{
"id": "B2C_1A_keyset1",
"keys": []
}
示例 2:创建具有键的键集
这是一个高级方案,您需要知道密钥的 RFC 7517 兼容 JSON Web 密钥格式。
请求
下面为请求示例。
POST https://graph.microsoft.com/beta/trustFramework/keySets
Content-type: application/json
{
"id": "keyset1",
"keys": [
{
"k": "k-value",
"x5c": [
"x5c-value"
],
"x5t": "x5t-value",
"kty": "kty-value",
"use": "use-value",
"exp": 99,
"nbf": 99,
"kid": "kid-value",
"e": "e-value",
"n": "n-value",
"d": "d-value",
"p": "p-value",
"q": "q-value",
"dp": "dp-value",
"dq": "dq-value",
"qi": "qi-value"
}
]
}
响应
以下示例显示了相应的响应。
注意: 为了提高可读性,可能缩短了此处显示的响应对象。
HTTP/1.1 201 Created
Content-type: application/json
Location: /trustFramework/keySets('B2C_1A_keyset1')
{
"id": "B2C_1A_keyset1",
"keys": [
{
"k": "k-value",
"x5c": [
"x5c-value"
],
"x5t": "x5t-value",
"kty": "kty-value",
"use": "use-value",
"exp": 99,
"nbf": 99,
"kid": "kid-value",
"e": "e-value",
"n": "n-value",
"d": "d-value",
"p": "p-value",
"q": "q-value",
"dp": "dp-value",
"dq": "dq-value",
"qi": "qi-value"
}
]
}