Iddawc
Handle the flow of OAuth2 and OpenID Connect authentication process from the client side.
|
#include <jansson.h>
#include <orcania.h>
#include <ulfius.h>
#include <rhonabwy.h>
#include "iddawc-cfg.h"
Go to the source code of this file.
Data Structures | |
struct | _i_session |
Macros | |
#define | I_OK 0 |
Success. More... | |
#define | I_ERROR 1 |
Error. More... | |
#define | I_ERROR_PARAM 2 |
Error in parameters. More... | |
#define | I_ERROR_MEMORY 3 |
Memory error. More... | |
#define | I_ERROR_UNAUTHORIZED 4 |
Request unauthorized. More... | |
#define | I_ERROR_SERVER 5 |
Server error. More... | |
#define | I_RESPONSE_TYPE_NONE 0x00000000 |
No response type. More... | |
#define | I_RESPONSE_TYPE_CODE 0x00000001 |
Response type code. More... | |
#define | I_RESPONSE_TYPE_TOKEN 0x00000010 |
Response type token. More... | |
#define | I_RESPONSE_TYPE_ID_TOKEN 0x00000100 |
Response type id_token. More... | |
#define | I_RESPONSE_TYPE_PASSWORD 0x00001000 |
Response type password. More... | |
#define | I_RESPONSE_TYPE_CLIENT_CREDENTIALS 0x00010000 |
Response type client_credentials. More... | |
#define | I_RESPONSE_TYPE_REFRESH_TOKEN 0x00100000 |
Response type refresh_token. More... | |
#define | I_AUTH_METHOD_GET 0x00000001 |
access auth endpoint using GET method More... | |
#define | I_AUTH_METHOD_POST 0x00000010 |
access auth endpoint using POST method More... | |
#define | I_AUTH_METHOD_JWT_SIGN_SECRET 0x00000100 |
access auth endpoint using a JWT signed with the client secret More... | |
#define | I_AUTH_METHOD_JWT_SIGN_PRIVKEY 0x00001000 |
access auth endpoint using a JWT signed with the client private key More... | |
#define | I_AUTH_METHOD_JWT_ENCRYPT_SECRET 0x00010000 |
access auth endpoint using a JWT encrypted with the client secret More... | |
#define | I_AUTH_METHOD_JWT_ENCRYPT_PUBKEY 0x00100000 |
access auth endpoint using a JWT encrypted with the client private key More... | |
#define | I_TOKEN_AUTH_METHOD_SECRET_BASIC 0 |
access token endpoint using HTTP basic auth with client_id and client password More... | |
#define | I_TOKEN_AUTH_METHOD_SECRET_POST 1 |
access token endpoint using secret send in POST parameters More... | |
#define | I_TOKEN_AUTH_METHOD_SECRET_JWT 2 |
access token endpoint using a JWT signed with the client secret More... | |
#define | I_TOKEN_AUTH_METHOD_PRIVATE_JWT 3 |
access token endpoint using a JWT signed with the client private key More... | |
#define | I_TOKEN_AUTH_METHOD_NONE 4 |
access token endpoint using no authentication More... | |
#define | I_STRICT_NO 0 |
Do not stricly conform to openid config result. More... | |
#define | I_STRICT_YES 1 |
Stricly conform to openid config result. More... | |
#define | I_AUTH_SIGN_ALG_MAX_LENGTH 8 |
Max length of a sign algorithm name. More... | |
Functions | |
int | i_init_session (struct _i_session *i_session) |
void | i_clean_session (struct _i_session *i_session) |
int | i_set_response_type (struct _i_session *i_session, uint i_value) |
int | i_set_result (struct _i_session *i_session, uint i_value) |
int | i_set_int_parameter (struct _i_session *i_session, i_option option, uint i_value) |
int | i_set_str_parameter (struct _i_session *i_session, i_option option, const char *s_value) |
int | i_set_additional_parameter (struct _i_session *i_session, const char *s_key, const char *s_value) |
int | i_set_additional_response (struct _i_session *i_session, const char *s_key, const char *s_value) |
uint | i_get_response_type (struct _i_session *i_session) |
uint | i_get_result (struct _i_session *i_session) |
uint | i_get_int_parameter (struct _i_session *i_session, i_option option) |
const char * | i_get_str_parameter (struct _i_session *i_session, i_option option) |
const char * | i_get_additional_parameter (struct _i_session *i_session, const char *s_key) |
const char * | i_get_additional_response (struct _i_session *i_session, const char *s_key) |
int | i_set_parameter_list (struct _i_session *i_session,...) |
json_t * | i_export_session_json_t (struct _i_session *i_session) |
int | i_import_session_json_t (struct _i_session *i_session, json_t *j_import) |
char * | i_export_session_str (struct _i_session *i_session) |
int | i_import_session_str (struct _i_session *i_session, const char *str_import) |
int | i_load_openid_config (struct _i_session *i_session) |
int | i_build_auth_url_get (struct _i_session *i_session) |
int | i_run_auth_request (struct _i_session *i_session) |
int | i_parse_redirect_to (struct _i_session *i_session) |
int | i_run_token_request (struct _i_session *i_session) |
int | i_verify_id_token (struct _i_session *i_session) |
int | i_load_userinfo (struct _i_session *i_session) |
int | i_load_userinfo_custom (struct _i_session *i_session, const char *http_method, struct _u_map *additional_query, struct _u_map *additional_headers) |
int | i_introspect_token (struct _i_session *i_session, json_t **j_result) |
int | i_revoke_token (struct _i_session *i_session) |
int | i_register_client (struct _i_session *i_session, json_t *j_parameters, int update_session, json_t **j_result) |