SAMLのAttributeStatementのformatにbasicを指定したとき
AttributeStatementのNameFormatとしてurn:oasis:names:tc:SAML:2.0:attrname-format:basic
を指定したとき、xsi:typeは結局何が使えるのかよくわからない。
仕様上はこう書いてる。8.2.3 Basic
The class of strings acceptable as the attribute name MUST be drawn from the set of values belonging to the primitive type xs:Name as defined in [Schema2] Section 3.3.6. See [SAMLProf] for attribute profiles that make use of this identifier.
xs:Nameはこれ。
これに属するプリミティブ型は https://www.w3.org/TR/xmlschema-2/#built-in-datatypes を見るとxs:stringしかないんじゃないのと思ったけど、Keycloakのテストコードを見てみると他のプリミティブ型も使えそうでよくわからなくなった。
いや、ちょっと勘違いしてそう。
Attribute Name
はxs:Name
を満たす必要があって、SAML-Profiles: 8 SAML Attribute Profiles
で、SAML Attribute Values
は↓を満たさなければならない。
The schema type of the contents of the <AttributeValue> element MUST be drawn from one of the types defined in Section 3 of [Schema2]. The xsi:type attribute MUST be present and be given the appropriate value.
なるほど、なのでxsi:typeは↓に書いてあるものが一通り使える、が正しそう。