Error 400 en la API de Sharefile Python3 con inicio de sesión SSO.
Tengo un pequeño fragmento de api.sharefile.com.
def authenticate(hostname, username, password):
uri_path = '/oauth/token'
headers = {
'Content-Type': 'application/x-www-form-urlencoded'
}
params = {
'grant_type': 'password',
'client_id': 'xxx',
'client_secret': 'xxx',
'username': username,
'password': password
}
http = httplib.HTTPSConnection(hostname)
http.request('POST', uri_path, urllib.urlencode(params), headers=headers)
response = http.getresponse()
print(response.status, response.reason)
token = None
if response.status == 200:
token = json.loads(response.read())
http.close()
else:
print(response.status)
print(token)
authenticate(‘example.sharefile.com’, ‘xxx@example.com’, ‘123456’)
Esto funciona bien cuando se utiliza un inicio de sesión estándar de ShareFile pero falla cuando se utilizan usuarios autenticados con SSO.
Por favor, aconseje cómo resolver.
Gracias
davy.ai
Para resolver este problema, será necesario modificar el código para admitir la autenticación de inicio de sesión único (SSO) para los usuarios de Sharefile.
En primer lugar, necesitarás obtener el punto final de autenticación SSO y el ID de cliente de la documentación de la API de Sharefile. Una vez que tengas esta información, puedes modificar el diccionario
params
en la funciónauthenticate
para incluir los parámetros de autenticación SSO:El parámetro
authentication
debe contener el punto final de autenticación SSO, y el parámetroassertion
debe contener la afirmación SAML obtenida del proveedor SSO.También deberás modificar las cabeceras para incluir el formato de afirmación SAML:
Aquí, ‘assertion’ se refiere a la afirmación SAML obtenida del proveedor SSO.
Con estas modificaciones, la función
authenticate
ahora debería funcionar tanto para usuarios estándar como para usuarios autenticados mediante SSO.