• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

examples/H12-Dec-2018-

okta/H12-Dec-2018-

.gitignoreH A D12-Dec-20189

readme.mdH A D12-Dec-20184.6 KiB

readme.md

1# OKTA SDK for GoLang (Unofficial)
2
3
4**NOTE:** There is an Official GO SDK under developement [okta/okta-sdk-golang](https://github.com/okta/okta-sdk-golang)
5
6An SDK to integrate with the [OKTA SDK](http://developer.okta.com/documentation/) for Golang.
7
8Much credits has to be given to the [go-github](https://github.com/google/go-github) library for which this package mimics. I stole a huge amount of code and ideas from that project.
9
10
11*Warnings* (There are many)
12
13* I have far from mastered the Go language.
14* This is not a complete SDK. It has been developed based on my own needs.
15* Use At your own risk!
16* Not all features of the OKTA API are implemented.
17* There are a long list of TODOS.
18* The current version of the API is focused more around retrieving data from OKTA not actually updating.
19
20
21## Current State
22
23The current state of the this SDK is in development. There is still much work to be done. Currently, we have basic user and group functionality working. We just focus on doing reads from OKTA and have not focused on doing updates.
24
25## Operations
26
27* User
28  * Create User (Implemented)  ☑
29      * Create User without password (Implemented in user.Create )  ☑
30        * See Examples `examples/userExamples.go createUserNoPassword()`
31      * Create User with password (Implemented in user.Create )  ☑
32        * See Examples `examples/userExamples.go createUserWithPassword()`
33  * Get user
34      * Me (Implemented using Users.GetByID pass "me" as parameter)  ☑
35      * By ID (Implemented Users.GetByID) ☑
36      * By Login (Implemented via Users.ListWithFilter passing in Login as filter parameter)  ☑
37      * List User by various filters (Implemented via Users.ListWithFilter)  ☑
38          * status, lastupdated, id, profile.login, profile.email, profile.firstName, profile.lastName
39	  * [List User with Search (Early Access)](http://developer.okta.com/docs/api/resources/users.html#list-users-with-search)   (NOT Implemented)  ☹
40  * update User (NOT Implemented) ☹
41      - password ☹
42      - user object ☹
43  * Groups - get user groups (Implemented with Users.PopulateGroups) ☑
44  * activate (implemented in Users.Activate) ☑
45  * deactivate (implemented in Users.Deactivate) ☑
46  * suspend (implemented in Users.Suspend) ☑
47  * unsuspend (implemented in Users.Unsuspend) ☑
48  * unlock (implemented in Users.Unlock) ☑
49  * reset_password (implemented in Users.ResetPassword) ☑
50  * SetPassword (Implemented in Users.SetPassword) ☑
51  * expire_password (NOT Implemented) ☹
52  * reset_factors (NOT Implemented) ☹
53  * forgotpassword (NOT Implemented) ☹
54  * change_recovery_question (NOT Implemented) ☹
55  * List Enrolled Factors (implemented in Users.PopulateEnrolledFactors)  ☑
56* Roles (Admin Roles) (NOT Implemented) ☹
57* Groups (okta.Groups)
58    - Get Group (Implemented with Groups.GetByID) ☑
59    - List Groups (Implemented with Groups.ListWithFilter) ☑
60    - Add Group (Implemented Groups.Add) ☑
61    - Update Group (NOT Implemented) ☹
62    - Delete Group (Implemented Groups.Delete) ☑
63    - Group Members (Implemented with Groups.GetUsers)
64    - Add User To Group (implemented in Groups.AddUserToGroup) ☑
65    - Remove User From Group (Implemented in RemoveUserFromGroup) ☑
66    - List Apps (NOT Implemented) ☹
67* Factors (NOT Implemented)
68    - Get user FActor(s) (NOT Implemented) ☹
69    - (implemented in Users.PopulateEnrolledFactors)  ☑
70    - Eligible factors (NOT Implemented) ☹
71    - Enroll in factor (NOT Implemented) ☹
72    - reset factor (NOT Implemented) ☹
73    - verify factors (NOT Implemented) ☹
74* Apps (Barely Implemented)
75    - get App (Apps.GetByID) ☑
76    - get App Users (Apps.GetUsers)  ☑
77    - Get APP Groups (Implemented in Apps.GetGroups) ☑
78    - Get App User (Implemented in Apps.GetUser) ☑
79    - Many more API Interactions to go ☹
80
81
82# OKTA Links
83
84Important OKTA Links
85
86http://developer.okta.com/docs/api/getting_started/design_principles.html
87
88
89
90## Example code
91
92
93There are several runnable examples in the `/examples` directory. You can run them by using the following:
94
95First you need two environment variables configured:
96
97* `OKTA_API_TEST_ORG` - The Orgname of your "Preview OKTA Environment"
98* `OKTA_API_TEST_TOKEN` - An API Token for your preview ORG
99
100```
101cd $GOPATH/src/github.com/chrismalek/oktasdk-go
102go run examples/*.go
103```
104
105You can see some examples in that code in the usage:
106
107* `/examples/userExamples.go` - Examples Using the User Client
108* `/examples/groupExamples.go` - Exaples using the Group Client
109
110
111
112
113
114
115