3.8. Dépannage des événements de l'API OAuth
Dans certains cas, le serveur API renvoie un message d'erreur unexpected condition
qui est difficile à déboguer sans accès direct au journal principal de l'API. La raison sous-jacente de l'erreur est volontairement masquée afin d'éviter de fournir à un utilisateur non authentifié des informations sur l'état du serveur.
Un sous-ensemble de ces erreurs est lié à des problèmes de configuration du compte de service OAuth. Ces problèmes sont capturés dans des événements qui peuvent être visualisés par des utilisateurs qui ne sont pas administrateurs. Lorsque vous rencontrez une erreur du serveur unexpected condition
pendant OAuth, exécutez oc get events
pour afficher ces événements sous ServiceAccount
.
L'exemple suivant signale un compte de service dont l'URI de redirection OAuth n'est pas correct :
$ oc get events | grep ServiceAccount
Exemple de sortie
1m 1m 1 proxy ServiceAccount Warning NoSAOAuthRedirectURIs service-account-oauth-client-getter system:serviceaccount:myproject:proxy has no redirectURIs; set serviceaccounts.openshift.io/oauth-redirecturi.<some-value>=<redirect> or create a dynamic URI using serviceaccounts.openshift.io/oauth-redirectreference.<some-value>=<reference>
L'exécution de oc describe sa/<service_account_name>
rapporte tous les événements OAuth associés au nom du compte de service donné.
$ oc describe sa/proxy | grep -A5 Events
Exemple de sortie
Events: FirstSeen LastSeen Count From SubObjectPath Type Reason Message --------- -------- ----- ---- ------------- -------- ------ ------- 3m 3m 1 service-account-oauth-client-getter Warning NoSAOAuthRedirectURIs system:serviceaccount:myproject:proxy has no redirectURIs; set serviceaccounts.openshift.io/oauth-redirecturi.<some-value>=<redirect> or create a dynamic URI using serviceaccounts.openshift.io/oauth-redirectreference.<some-value>=<reference>
Voici une liste des erreurs d'événements possibles :
No redirect URI annotations or an invalid URI is specified
Reason Message NoSAOAuthRedirectURIs system:serviceaccount:myproject:proxy has no redirectURIs; set serviceaccounts.openshift.io/oauth-redirecturi.<some-value>=<redirect> or create a dynamic URI using serviceaccounts.openshift.io/oauth-redirectreference.<some-value>=<reference>
Invalid route specified
Reason Message NoSAOAuthRedirectURIs [routes.route.openshift.io "<name>" not found, system:serviceaccount:myproject:proxy has no redirectURIs; set serviceaccounts.openshift.io/oauth-redirecturi.<some-value>=<redirect> or create a dynamic URI using serviceaccounts.openshift.io/oauth-redirectreference.<some-value>=<reference>]
Invalid reference type specified
Reason Message NoSAOAuthRedirectURIs [no kind "<name>" is registered for version "v1", system:serviceaccount:myproject:proxy has no redirectURIs; set serviceaccounts.openshift.io/oauth-redirecturi.<some-value>=<redirect> or create a dynamic URI using serviceaccounts.openshift.io/oauth-redirectreference.<some-value>=<reference>]
Missing SA tokens
Reason Message NoSAOAuthTokens system:serviceaccount:myproject:proxy has no tokens