Идентификатор Hashicorp Vault OID C метод аутентификации с Azure ошибка AD, проверяющая подпись - PullRequest
1 голос
/ 31 января 2020

Я пытаюсь защитить пользовательский интерфейс хранилища и вход в командную строку, используя JWT / OID C метод аутентификации с использованием Azure AAD в качестве поставщика. Я слежу за документацией, но заканчиваю сообщением об ошибке:

Token verification failed. error validating signature: failed to verify signature: failed to verify id token signature

Вот шаги, которые я выполнил для настройки метода аутентификации

  1. Создание приложения Azure Регистрация, позволяющая мои URL-адреса перенаправления
    1. http://localhost: 8250 / oidc / callback
    2. https://hostname: номер_порта / ui / хранилище / auth / oidc / oidc / callback
  2. У меня есть разрешения Group.Read.All для приложения и делегированный тип Microsoft Graph API
  3. Создан секрет и его токен из portal
  4. Я использую конечные точки v2.0 https://login.microsoftonline.com/{my_tenant_id}/v2.0
  5. Я указал oid c scope для https://graph.microsoft.com/.default
  6. Я изменил манифест приложения с помощью "groupMembershipClaims": "All",

Затем я вошел в систему с использованием токена аутентификации в хранилище и выдал следующую командную строку.

vault auth enable oidc
vault write auth/oidc/config @azuread-auth-config.json
# Success! Data written to: auth/oidc/config
vault write auth/oidc/role/default @azuread-default-role-config.json

Файл azuread-auth-config.json содержит следующее содержимое

{
    "oidc_discovery_url": "https://login.microsoftonline.com/{my_tenant_id}/v2.0",
    "oidc_client_id": "{my_client_id}",
    "oidc_client_secret": "{my_client_secret}",
    "default_role": "default"
}

Файл azuread-default-role-config.json имеет следующее содержание

{
    "allowed_redirect_uris": [
        "http://localhost:8250/oidc/callback",
        "https://{my_hostname}/ui/vault/auth/oidc/oidc/callback",
        "http://localhost:8200/ui/vault/auth/oidc/oidc/callback"
    ],
    "groups_claim": "groups",
    "oidc_scopes": [
        "https://graph.microsoft.com/.default"
    ],
    "policies": [
        "default"
    ],
    "user_claim": "email",
    "bound_audiences": [
        "{my_client_id}"
    ],
    "verbose_oidc_logging": "true"
}

Строка "verbose_oidc_logging": "true" была добавлена ​​только для r цель отладки.

Процесс входа в систему, за которым я следовал

Как только я запускаю процесс входа в систему в пользовательском интерфейсе Vault, меня перенаправляют на URL

https://login.microsoftonline.com/{my_tenant_id}/oauth2/v2.0/authorize?client_id={my_client_id}&nonce=5e52640c66c2dsf64f5ds3f1sd46dc6717&redirect_uri=https%3A%2F%2F{my_hostname}%2Fui%2Fvault%2Fauth%2Foidc%2Foidc%2Fcallback&response_type=code&scope=openid+https%3A%2F%2Fgraph.microsoft.com%2F.default&state=744a03304e71ed7e4dedgrd3541544

, затем я получаю войдите в успешное сообщение, которое само закрывает окно

Я также отслеживаю журналы на сервере хранилища и вижу, что токен сгенерирован. Если я go на https://jwt.ms и вставляю токен JWT, он расшифровывается, и я могу определить правильные значения. Под моим пользователем я вижу около 90 групп с правильным идентификатором клиента и идентификатором клиента.

Если я попытаюсь войти в систему с помощью командной строки vault login -method oidc role=default, я получу то же сообщение об ошибке.

Code: 400. Errors:

* Token verification failed. error validating signature: failed to verify signature: failed to verify id token signature
...