def login_with_service_principal_creds()

in src/data_load/utils.py [0:0]


    def login_with_service_principal_creds(url: str, client_id: str, client_secret: str) -> dict:
        """
        Retrieve Access Token using Service Principal.
        """


        logger.info("Using Service principal credentials")

        body = {
            "grant_type": "client_credentials",
            "scope": f"{client_id}/.default openid profile offline_access",
            "client_id": client_id,
            "client_secret": client_secret,
        }

        headers = {
            "Content-Type": "application/x-www-form-urlencoded"
        }

        data = urlencode(body).encode("utf8")
        request = Request(url=url, data=data, headers=headers)
        try:
            response = urlopen(request)
            response_body = response.read()
            return loads(response_body)
        except HTTPError as err:
            code = err.code
            message = err.read().decode("utf8")
            logger.error("Login to fetch access token request failed. %d %s", {code}, {message})
            raise