6.6. AddAuthMachineToMachineConfig
POST /v1/auth/m2m
AddAuthMachineToMachineConfig는 머신 구성에 새 인증 머신을 생성합니다.
6.6.1. 설명
6.6.2. 매개 변수
6.6.2.1. 본문 매개변수
이름 | 설명 | 필수 항목 | 기본 | 패턴 |
---|---|---|---|---|
body | X |
6.6.3. 반환 유형
6.6.4. 콘텐츠 유형
- application/json
6.6.5. 응답
코드 | 메시지 | datatype |
---|---|---|
200 | 성공적인 응답입니다. | |
0 | 예기치 않은 오류 응답 |
6.6.6. Samples
6.6.7. 공통 오브젝트 참조
6.6.7.1. AuthMachineToMachineConfigMapping
매핑은 ID 토큰의 클레임 값을 Central 내의 특정 역할에 매핑합니다.
필드 이름 | 필수 항목 | Cryostat | 유형 | 설명 | 형식 |
---|---|---|---|---|---|
key | 문자열 | 사용할 ID 토큰의 클레임 값 내의 키입니다. | |||
valueExpression | 문자열 | 지정된 키로 식별되는 ID 토큰 클레임의 값에 대해 평가할 정규식입니다. 이 정규식은 RE2 형식으로 되어 있습니다. https://github.com/google/re2/wiki/Syntax. | |||
role | 문자열 | 키와 값이 특정 ID 토큰과 일치할 때 발행해야 하는 역할입니다. |
6.6.7.2. ProtobufAny
any
는 직렬화된 메시지의 유형을 설명하는 URL과 함께 임의의 직렬화된 프로토콜 버퍼 메시지를 포함합니다.
protobuf 라이브러리는 유틸리티 함수 또는 Any 유형의 추가 생성 메서드 형태로 모든 값의 팩/unpack을 지원합니다.
예 1: 팩 및 C++에서 메시지의 압축을 풉니다.
Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... }
Foo foo = ...;
Any any;
any.PackFrom(foo);
...
if (any.UnpackTo(&foo)) {
...
}
예 2: Java에서 메시지 팩 및 압축을 풉니다.
Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } // or ... if (any.isSameTypeAs(Foo.getDefaultInstance())) { foo = any.unpack(Foo.getDefaultInstance()); }
Foo foo = ...;
Any any = Any.pack(foo);
...
if (any.is(Foo.class)) {
foo = any.unpack(Foo.class);
}
// or ...
if (any.isSameTypeAs(Foo.getDefaultInstance())) {
foo = any.unpack(Foo.getDefaultInstance());
}
Example 3: Pack and unpack a message in Python.
Example 3: Pack and unpack a message in Python.
foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
foo = Foo(...)
any = Any()
any.Pack(foo)
...
if any.Is(Foo.DESCRIPTOR):
any.Unpack(foo)
...
Example 4: Pack and unpack a message in Go
Example 4: Pack and unpack a message in Go
foo := &pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
foo := &pb.Foo{...}
any, err := anypb.New(foo)
if err != nil {
...
}
...
foo := &pb.Foo{}
if err := any.UnmarshalTo(foo); err != nil {
...
}
protobuf 라이브러리에서 제공하는 pack 메서드는 기본적으로 유형 URL로 'type.googleapis.com/full.type.name'을 사용하고 압축 해제 방법은 유형 URL에서 마지막 '/' 후에만 정규화된 유형 이름을 사용합니다(예: "foo.bar.com/x/y.z")는 유형 이름 "y.z"를 생성합니다.
6.6.7.2.1. JSON 표현
Any
값의 JSON 표현에서는 형식 URL을 포함하는 추가 필드 @type
과 함께 deserialized 포함 메시지의 정규식을 사용합니다. 예제:
package google.profile; message Person { string first_name = 1; string last_name = 2; }
package google.profile;
message Person {
string first_name = 1;
string last_name = 2;
}
{ "@type": "type.googleapis.com/google.profile.Person", "firstName": <string>, "lastName": <string> }
{
"@type": "type.googleapis.com/google.profile.Person",
"firstName": <string>,
"lastName": <string>
}
포함된 메시지 유형이 잘 알려져 있고 사용자 지정 JSON 표현이 있는 경우 해당 표현에 @type
필드 외에도 사용자 지정 JSON이 포함된 필드 값을
추가합니다. 예(메시지 [google.protobuf.Duration][]).
{ "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" }
{
"@type": "type.googleapis.com/google.protobuf.Duration",
"value": "1.212s"
}
필드 이름 | 필수 항목 | Cryostat | 유형 | 설명 | 형식 |
---|---|---|---|---|---|
typeUrl | 문자열 |
직렬화된 프로토콜 버퍼 메시지의 유형을 고유하게 식별하는 URL/리소스 이름입니다. 이 문자열에는 하나 이상의 \"/\" 문자가 포함되어야 합니다. URL 경로의 마지막 세그먼트는 | |||
value | byte[] | 지정된 유형의 유효한 직렬화 프로토콜 버퍼여야 합니다. | byte |
6.6.7.3. RuntimeError
필드 이름 | 필수 항목 | Cryostat | 유형 | 설명 | 형식 |
---|---|---|---|---|---|
error | 문자열 | ||||
코드 | 정수 | int32 | |||
message | 문자열 | ||||
세부 정보 |
6.6.7.4. V1AddAuthMachineToMachineConfigRequest
필드 이름 | 필수 항목 | Cryostat | 유형 | 설명 | 형식 |
---|---|---|---|---|---|
config |
6.6.7.5. V1AddAuthMachineToMachineConfigResponse
필드 이름 | 필수 항목 | Cryostat | 유형 | 설명 | 형식 |
---|---|---|---|---|---|
config |
6.6.7.6. V1AuthMachineToMachineConfig
AuthMachineToMachineConfig는 중앙 액세스 토큰을 사용하여 타사에서 ID 토큰을 교환하는 규칙을 결정합니다. M2M은 구성의 의도된 사용 사례이므로 Machine to machine을 나타냅니다.
필드 이름 | 필수 항목 | Cryostat | 유형 | 설명 | 형식 |
---|---|---|---|---|---|
id | 문자열 | 구성의 UUID입니다. 머신 구성에 머신을 추가할 때 이 필드를 설정하지 않아야 합니다. | |||
type | GENERIC, GITHUB_ACTIONS, | ||||
tokenExpirationDuration | 문자열 | ExchangeAuthMachineToMachineToken API 호출에서 반환된 토큰 만료를 설정합니다. 가능한 유효한 시간 단위는 s, m, h입니다. 허용되는 최대 만료 기간은 24h입니다. 예를 들면 2h45m입니다. 기간 검증에 대한 자세한 내용은 https://pkg.go.dev/time#ParseDuration 을 참조하십시오. | |||
매핑 | 액세스 토큰을 성공적으로 생성하려면 유효한 역할을 확인하려면 하나 이상의 매핑이 필요합니다. | ||||
issuer | 문자열 | 관련 OIDC 공급자의 발행자에서 교환하기 위해 ID 토큰을 발행합니다. type이 GENERIC인 경우 URL을 포함하는 비어 있지 않은 문자열이어야 합니다. GitHub 작업의 경우 비어 있거나 https://token.actions.githubusercontent.com 로 설정해야 합니다. 발행자는 고유한 키이므로 하나의 GITHUB_ACTIONS 구성이 있을 수 있으며 각 GENERIC 구성에 고유한 발행자가 있어야 합니다. |
6.6.7.7. V1AuthMachineToMachineConfigType
머신 구성에 대한 인증 머신 유형입니다. 현재 토큰 확인 및 교환에 사용할 GitHub 작업 또는 기타 일반 OIDC 공급자를 지원합니다.
열거 값 |
---|
일반 |
GITHUB_ACTIONS |