diff --git a/keycloak/keycloak_openid.py b/keycloak/keycloak_openid.py index ca4d9ae..cd5c2e4 100644 --- a/keycloak/keycloak_openid.py +++ b/keycloak/keycloak_openid.py @@ -30,6 +30,7 @@ from .connection import ConnectionManager from .exceptions import raise_error_from_response, KeycloakGetError, \ KeycloakRPTNotFound, KeycloakAuthorizationConfigError, KeycloakInvalidTokenError from .urls_patterns import ( + URL_AUTH, URL_TOKEN, URL_USERINFO, URL_WELL_KNOWN, @@ -156,7 +157,10 @@ class KeycloakOpenID: :return: """ - return NotImplemented + params_path = {"authorization-endpoint": self.well_know()['authorization_endpoint'], + "client-id": self.client_id, + "redirect-uri": redirect_uri} + return URL_AUTH.format(**params_path) def token(self, username="", password="", grant_type=["password"], code="", redirect_uri=""): """ diff --git a/keycloak/urls_patterns.py b/keycloak/urls_patterns.py index 8746fda..cc9d587 100644 --- a/keycloak/urls_patterns.py +++ b/keycloak/urls_patterns.py @@ -29,6 +29,7 @@ URL_LOGOUT = "realms/{realm-name}/protocol/openid-connect/logout" URL_CERTS = "realms/{realm-name}/protocol/openid-connect/certs" URL_INTROSPECT = "realms/{realm-name}/protocol/openid-connect/token/introspect" URL_ENTITLEMENT = "realms/{realm-name}/authz/entitlement/{resource-server-id}" +URL_AUTH = "{authorization-endpoint}?client_id={client-id}&response_type=code&redirect_uri={redirect-uri}" # ADMIN URLS URL_ADMIN_USERS = "admin/realms/{realm-name}/users"