Login Guide
A walk-through on login flow and operations to help understand login and debug issues
Banno Online receives a 401 Unauthorized and error code 11 indicating needs a new Referer / Origin added
First, verify that the institution’s row in the institution_allowed_originstable in the origins database on the postgres-espresso server contains the correct origin.
For example, in the following output, if the supplied origin were http in the HTTP Request, the API would return an HTTP-401 since http... does not match https..., i.e. the HTTP Request’s Header value would not match, in this scenario, the DB’s origin value.
origins=> select * from institution_allowed_origins limit 1;
institution_id | origin | deleted_at
--------------------------------------+-------------------------------------+------------------------
0fc6b610-e76d-11e4-9041-0a0027000002 | https://chrome-production.banno.com | 2016-08-19 15:50:50+00
(1 row)
Add the new referer to the institution_allowed_origins table in the appropriate region in the origins database on the postgres-espresso server.
Search Application Logs for when the logged in and what happened during login
Using the saved search Application Logs in Kibana search for
"NEW LOGIN FLOW" AND ("userid" OR username OR nettellerId)
Remove the "NEW LOGIN FLOW" AND part to just search for "userid" OR username OR nettellerId
and find a message with an IP (IP address of end user) or CID (correlation Id)
Alternatively you can search for "api login message" AND ("userid" OR username OR nettellerId)
Or if you want a high level view of for a user just search for ("userid" OR username OR nettellerId)
Note: Make sure to filter out any thing to do with mobile/grip admin logs as they can mislead you.
Find Nginx Records
Open a new kibana search in the same timeframe as above using the saved search Consumer API Nginx Access
You can filter by the remote_addr by the IP or the request_id by the CID found above.
IP Address is more useful for filtering for consumer users who are not test users at a bank because a lot of bank test users end up with the same IP
You can search by login or fetch to match only requests for a specific endpoint.
For mobile requests the http_user_agent is useful to filter out FIs you are not looking for.
For online request they typically start with /a/consumer/api eg /a/consumer/api/login and have
a http_referrer of like the online banking website they came from eg https://secure.statebankspencer.com/login
Find the authy events for a user using slack task
use /st authy-events production user-id in #auto-jabberwocky room to find authy events for a user
Note: this will only find the events for their current authyId. See below for finding all the authyId’s for a userId
If problems with the command run /st help for help instructions
Find Banno 2FA (oob2fa) interactions for a user in application logs
search kibana with save search Application Logs in the timeframe using app_name: oob2fa AND "bannoUserId"
in order to find all the authyId’s I’ll add AND authyId
If you need to find events for an authyId that is not their current then you need to use postman to get it
Finding authy events for an authyId using Postman
Do a GET to https://api.authy.com/protected/json/reporting/events?query[objects.user.s_authy_id][eq]=authyId
where the authyId at the end is the one you’re looking for
You’ll need to pass the X-Authy-API-Key header for the FI which you’ll need to login to the twilio admin console and find it in the
authy application settings for that FI
Get the Banno People Activity (history) for the user from day in question from Support
A lot of times it’s useful to see the login/2fa history events for user to understand what is going on
Determine if a cash management user is in hold status
Overview
For NetTeller Cash Management users for Silverlake and Core Director (may not be supported until all FI’s on required version) core provider types
we check if they are in hold status during login and fetch. If they are in hold status we return an http status code Forbidden (403)
with an error code 22.
** Note that we re-used error code 22 as to not require client changes and error code 22 also means locked.
Client Messaging
Mobile and Online clients should display the following message:
Something in your account needs to be corrected or updated. At this time a staff member is required to further assist you.
Support
Using kibana saved search Consumer Api Cash Management Hold Status
Replace the userId in the first part of the message which should look like:
message:"[user-id]" AND message:"from calling get cash management user"
the message looked up should look roughly like
Result was Some(CashManagementUser(Some(true))) from calling get cash management user with netTellerId NetTellerId(785200000273)
and CashManagementUserId(schale) for UserId(eb9908e0-3770-11e8-8d52-02422f6950f7)
and requestId afaab45ecb70b64328321f03f5130eb5
Things to observe:
- if it says
CashManagementUser(Some(true))it means they are in hold status - save the requestId as that will be needed for the next search
Open a new kibana window and use saved search jXchange Api Cash Management Hold Status
Replaces the first part with the requestId from above and should look like:
message:"[requestId]" AND message:"IntnetFinInstIdUsrInq"
** note we merged a tracking pr which enabled searching by requestId for future requests, but wasn’t in place for original roll out
You should see a message with the jxchange request and response.
Things to observe:
<BusCorrelId>[requestId]</BusCorrelId>in the request- Check the
<CashMgmtUsrState>[value]</CashMgmtUsrState>in the Response - value
Y(Silverlake) orAct(Core Director) indicates the user is in held status