You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

79 lines
3.0 KiB

  1. from keycloak.authorization import Authorization
  2. from keycloak.connection import ConnectionManager
  3. from keycloak.keycloak_openid import KeycloakOpenID
  4. def test_keycloak_openid_init(env):
  5. oid = KeycloakOpenID(
  6. server_url=f"http://{env.KEYCLOAK_HOST}:{env.KEYCLOAK_PORT}",
  7. realm_name="master",
  8. client_id="admin-cli",
  9. )
  10. assert oid.client_id == "admin-cli"
  11. assert oid.client_secret_key is None
  12. assert oid.realm_name == "master"
  13. assert isinstance(oid.connection, ConnectionManager)
  14. assert isinstance(oid.authorization, Authorization)
  15. def test_well_known(oid: KeycloakOpenID):
  16. res = oid.well_known()
  17. assert res is not None
  18. assert res != dict()
  19. for key in [
  20. "acr_values_supported",
  21. "authorization_encryption_alg_values_supported",
  22. "authorization_encryption_enc_values_supported",
  23. "authorization_endpoint",
  24. "authorization_signing_alg_values_supported",
  25. "backchannel_authentication_endpoint",
  26. "backchannel_authentication_request_signing_alg_values_supported",
  27. "backchannel_logout_session_supported",
  28. "backchannel_logout_supported",
  29. "backchannel_token_delivery_modes_supported",
  30. "check_session_iframe",
  31. "claim_types_supported",
  32. "claims_parameter_supported",
  33. "claims_supported",
  34. "code_challenge_methods_supported",
  35. "device_authorization_endpoint",
  36. "end_session_endpoint",
  37. "frontchannel_logout_session_supported",
  38. "frontchannel_logout_supported",
  39. "grant_types_supported",
  40. "id_token_encryption_alg_values_supported",
  41. "id_token_encryption_enc_values_supported",
  42. "id_token_signing_alg_values_supported",
  43. "introspection_endpoint",
  44. "introspection_endpoint_auth_methods_supported",
  45. "introspection_endpoint_auth_signing_alg_values_supported",
  46. "issuer",
  47. "jwks_uri",
  48. "mtls_endpoint_aliases",
  49. "pushed_authorization_request_endpoint",
  50. "registration_endpoint",
  51. "request_object_encryption_alg_values_supported",
  52. "request_object_encryption_enc_values_supported",
  53. "request_object_signing_alg_values_supported",
  54. "request_parameter_supported",
  55. "request_uri_parameter_supported",
  56. "require_pushed_authorization_requests",
  57. "require_request_uri_registration",
  58. "response_modes_supported",
  59. "response_types_supported",
  60. "revocation_endpoint",
  61. "revocation_endpoint_auth_methods_supported",
  62. "revocation_endpoint_auth_signing_alg_values_supported",
  63. "scopes_supported",
  64. "subject_types_supported",
  65. "tls_client_certificate_bound_access_tokens",
  66. "token_endpoint",
  67. "token_endpoint_auth_methods_supported",
  68. "token_endpoint_auth_signing_alg_values_supported",
  69. "userinfo_encryption_alg_values_supported",
  70. "userinfo_encryption_enc_values_supported",
  71. "userinfo_endpoint",
  72. "userinfo_signing_alg_values_supported",
  73. ]:
  74. assert key in res